You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
3.0 KiB

package com.controller.before;
import java.io.FileInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.po.Email;
import com.service.before.EmailService;
import com.util.MyUtil;
@Controller
@RequestMapping("/email")
public class EmailController extends BaseBeforeController{
@Autowired
private EmailService emailService;
/**
* 写信
*/
@RequestMapping("/write")
public String write(Email myemail, Model model, HttpServletRequest request, HttpSession session) {
return emailService.write(myemail,model,request,session);
}
/**
* 回复初始化
*/
@RequestMapping("/reEmailInit")
public String reEmailInit(Integer id, Model model, HttpSession session) {
return emailService.reEmailInit(id, model);
}
/**
* 收信
*/
@RequestMapping("/recieve")
public String recieve(Model model, HttpSession session) {
return emailService.recieve(model, session);
}
/**
* 已发送
*/
@RequestMapping("/send")
public String send(Model model, HttpSession session) {
return emailService.send(model, session);
}
/**
* 打开信件看详情
*/
@RequestMapping("/detail")
public String detail(Model model, Integer id) {//id接收参数id
return emailService.detail(model, id);
}
/**
* 删除一个邮件
*/
@RequestMapping("/deleteOne")
public String deleteOne(Integer id) {//id接收参数id
return emailService.deleteOne(id);
}
/***
* 删除多个邮件
*/
@RequestMapping("/deleteMore")
public String deleteMore(Integer ids[]) {//id接收参数id
return emailService.deleteMore(ids);
}
/**
* 下载附件,该方法不访问数据库,故只写控制层
*/
@RequestMapping("/down")
public String down(String fileid, HttpServletRequest request, HttpServletResponse response) {//fileid接收参数fileid
String aFilePath = null; //要下载的文件路径
FileInputStream in = null; //输入流
ServletOutputStream out = null; //输出流
try {
//从workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps下载
aFilePath = request.getServletContext().getRealPath("uploadfiles");
//设置下载文件使用的报头
response.setHeader("Content-Type", "application/x-msdownload" );
response.setHeader("Content-Disposition", "attachment; filename="
+ MyUtil.toUTF8String(fileid));
// 读入文件
in = new FileInputStream(aFilePath + "\\"+ fileid);
//得到响应对象的输出流,用于向客户端输出二进制数据
out = response.getOutputStream();
out.flush();
int aRead = 0;
byte b[] = new byte[1024];
while ((aRead = in.read(b)) != -1 & in != null) {
out.write(b,0,aRead);
}
out.flush();
in.close();
out.close();
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}
}