📄 emailuploadservlet.java
字号:
package com.oa.lp.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
import com.oa.lp.dao.DraftBoxDAO;
import com.oa.lp.dao.FileDAO;
import com.oa.lp.dao.InboxDAO;
import com.oa.lp.dao.OutboxDAO;
import com.oa.lp.database.DataBase;
import com.oa.lp.model.DraftBox;
import com.oa.lp.model.DraftBoxAnnex;
import com.oa.lp.model.Employee;
import com.oa.lp.model.InBox;
import com.oa.lp.model.InBoxAnnex;
import com.oa.lp.model.OutBox;
import com.oa.lp.model.OutBoxAnnex;
public class EmailUploadServlet extends TopServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//获得EMPID
Employee emp = (Employee)request.getSession().getAttribute("emp");
int empId = emp.getEmpId();
Connection conn = null;
try {
conn = DataBase.getConnection();
DraftBoxDAO draftBoxDao = new DraftBoxDAO();
draftBoxDao.setConn(conn);
OutboxDAO outboxDao = new OutboxDAO();
outboxDao.setConn(conn);
InboxDAO inboxDao = new InboxDAO();
inboxDao.setConn(conn);
// 新建一个SmartUpload对象
SmartUpload upload = new SmartUpload();
// 上传初始化
upload.initialize(this.getServletConfig(), request, response);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
upload.setMaxFileSize(1000000);
// 2.限制总上传数据的长度。
upload.setTotalMaxFileSize(10000000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许gif.jpg文件。
upload.setAllowedFilesList("gif,jpg,bmp,rar");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
// jsp,htm,html扩展名的文件和没有扩展名的文件。
upload.setDeniedFilesList("exe,bat,jsp,htm,html");
//上传文件
upload.upload();
// 利用Request对象获取参数之值
String method = upload.getRequest().getParameter("method");
String acceptPersonId = upload.getRequest().getParameter("acceptPersonId");
String acceptPersonName = upload.getRequest().getParameter("acceptPersonName");
String sendPersonId = String.valueOf(empId);
String sendPersonName = upload.getRequest().getParameter("sendPersonName");
String title = upload.getRequest().getParameter("title");
String content = upload.getRequest().getParameter("content");
if(method.equals("sendEmail")){
//发邮件
//在发件箱保存
OutBox outbox = new OutBox();
outbox.setEmpId(empId);
outbox.setAcceptPersonId(acceptPersonId);
outbox.setAcceptPersonName(acceptPersonName);
outbox.setSendPersonId(sendPersonId);
outbox.setSendPersonName(sendPersonName);
outbox.setTitle(title);
outbox.setContent(content);
List outboxlist = new ArrayList();
//逐一提取上传文件信息,同时可保存文件。
for (int i = 0; i < upload.getFiles().getCount(); i++) {
com.jspsmart.upload.SmartFile file = upload.getFiles().getFile(
i);
// 若文件不存在则继续
if (file.isMissing())
continue;
String fileName = file.getFileName();
int fileSize = file.getSize();
// 生成文件名
String filePath = "/upload/email/" + System.currentTimeMillis()+"."+file.getFileExt();
file.saveAs(filePath);
//在数据库中保存文件
OutBoxAnnex annex = new OutBoxAnnex();
annex.setName(fileName);
annex.setPath(filePath);
outboxlist.add(annex);
}
outboxDao.addOutbox(outbox, outboxlist);
//在收件箱保存
String acceptPersonIds[] = acceptPersonId.split(",");
String acceptPersonNames[] = acceptPersonName.split(",");
for(int i=0;i<acceptPersonIds.length;i++){
InBox inbox = new InBox();
inbox.setEmpId(Integer.parseInt(acceptPersonIds[i]));
inbox.setSendPersonId(String.valueOf(empId));
inbox.setSendPersonName(emp.getEmpName());
inbox.setAcceptPersonId(acceptPersonIds[i]);
inbox.setAcceptPersonName(acceptPersonNames[i]);
inbox.setTitle(title);
inbox.setContent(content);
List inboxlist = new ArrayList();
//逐一提取上传文件信息,同时可保存文件。
for (int j = 0; j < upload.getFiles().getCount(); j++) {
com.jspsmart.upload.SmartFile file = upload.getFiles().getFile(
j);
// 若文件不存在则继续
if (file.isMissing())
continue;
String fileName = file.getFileName();
int fileSize = file.getSize();
// 生成文件名
String filePath = "/upload/email/" + System.currentTimeMillis()+"."+file.getFileExt();
file.saveAs(filePath);
//在数据库中保存文件
InBoxAnnex annex = new InBoxAnnex();
annex.setName(fileName);
annex.setPath(filePath);
inboxlist.add(annex);
}
inboxDao.addInbox(inbox, inboxlist);
}
this.sendRedirect(request, response, "/EmailServlet?method=outBox");
}else if(method.equals("saveDraft")){
//保存
//封装对象
DraftBox draftBox = new DraftBox();
draftBox.setEmpId(empId);
draftBox.setAcceptPersonId(acceptPersonId);
draftBox.setAcceptPersonName(acceptPersonName);
draftBox.setSendPersonId(sendPersonId);
draftBox.setSendPersonName(sendPersonName);
draftBox.setTitle(title);
draftBox.setContent(content);
List list = new ArrayList();
//逐一提取上传文件信息,同时可保存文件。
for (int i = 0; i < upload.getFiles().getCount(); i++) {
com.jspsmart.upload.SmartFile file = upload.getFiles().getFile(
i);
// 若文件不存在则继续
if (file.isMissing())
continue;
String fileName = file.getFileName();
int fileSize = file.getSize();
// 生成文件名
String filePath = "/upload/email/" + System.currentTimeMillis()+"."+file.getFileExt();
file.saveAs(filePath);
//在数据库中保存文件
DraftBoxAnnex annex = new DraftBoxAnnex();
annex.setName(fileName);
annex.setPath(filePath);
list.add(annex);
}
draftBoxDao.addDraft(draftBox, list);
this.sendRedirect(request, response,"/EmailServlet?method=draftBox");
}
// 事务提交
DataBase.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
// 关闭连接
DataBase.releaseConnection(conn);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -