package com.v512;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
public class SendAttachmentMailServlet extends HttpServlet {
private static final long serialVersionUID = -1408700020471642036L;
private ServletContext sc;
private String savePath;
File file;
private Map<String,String> parameters = new HashMap<String,String>();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
File file = this.doAttachment(request);
MultiPartEmail email = new MultiPartEmail();
email.setCharset("UTF-8");
email.setHostName("smtp.sina.com");
email.setAuthentication("web08","web2008");
try {
email.addTo(parameters.get("to"));
email.setFrom(parameters.get("from"));
email.setSubject(parameters.get("title"));
email.setMsg(parameters.get("content"));
if(file!=null) {
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(file.getPath());
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setName(file.getName());
email.attach(attachment);
}
email.send();
request.setAttribute("upload.message","上传文件成功!");
} catch (EmailException e) {
e.printStackTrace();
request.setAttribute("upload.message","上传文件失败!");
}
request.getRequestDispatcher("/uploadResult.jsp").forward(request,response);
}
public File doAttachment(HttpServletRequest request) throws ServletException,IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List list = upload.parseRequest(request);
Iterator it = list.iterator();
while(it.hasNext()) {
FileItem item = (FileItem)it.next();
if(item.isFormField()) {
parameters.put(item.getFieldName(),item.getString("UTF-8"));
}else {
if(item.getName()!=null&&!item.getName().equals("")) {
File tempFile = new File(item.getName());
System.out.println(sc.getRealPath("/")+savePath);
file = new File(sc.getRealPath("/")+savePath,tempFile.getName());
item.write(file);
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
return file;
}
public void init(ServletConfig config) {
savePath = config.getInitParameter("savePath");
sc = config.getServletContext();
}
}
文件上传与下载简单实例
需积分: 9 110 浏览量
2008-10-30
17:58:36
上传
评论
收藏 15KB RAR 举报
lcfine
- 粉丝: 0
- 资源: 34
最新资源
- 徐州市区shp边界文件
- 简易数字频率计设计(原理图、PCB、源码、分析报告)
- 20225207038罗丽文财管专2201班.rar
- Golang:通过Gin框架+Redis+责任链,实现一个简单的钉钉机器人,进行消息处理 ps:多应用版
- 基于cnn和AlexNet的铝材缺陷检测内含数据集和demo原型2种方法
- 2023年各城市PM2.5, PM10, SO2, NO2等环境空气质量数据
- go 语言 实现的 使用modbus 协议 通过DTU tcp 链接 采集数据
- SHELL脚本(全是干货)
- Windows屏幕录屏软件
- 2022年各城市PM2.5, PM10, SO2, NO2等环境空气质量数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈