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
107 lines
3.0 KiB
2 years ago
|
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;
|
||
|
}
|
||
|
}
|