jspsmart文件上传与邮件发送的实例_JSP教程-查字典教程网
jspsmart文件上传与邮件发送的实例
jspsmart文件上传与邮件发送的实例
发布时间:2016-12-29 来源:查字典编辑
摘要:1、jspsmart文件上传(普通表单,带有普通表单域、若干个文件选择域)页面:复制代码代码如下:EmailFilesubmitreset处...

1、jspsmart文件上传(普通表单,带有普通表单域、若干个文件选择域)

页面:

复制代码 代码如下:

<form id=“estForm” action="/tools/toolServlet?type=est" method="post" enctype="multipart/form-data">

<div>

<label for="email">Email</label>

<div>

<input type="text" id="email" name="email" placeholder="Email" onblur="checkEmail()">

<span></span>

</div>

</div>

<div>

<label for="file">File</label>

<div>

<input type="file" name="file" id="file" onchange="getFileInfo()"/>

<span></span>

</div>

</div>

<>

<!-- 隐藏文件域 end

<div>

<label for="file">crossmatch</label>

<div>

<select name="crossmatch" id="crossmatch">

<option value="Y">Y</option>

<option value="N">N</option>

</select>

<span></span>

</div>

</div>-->

<div>

<div>

<>

<button type="submit" id="upload">submit</button>

<button type="reset" id="reset">reset</button>

</div>

</div>

</form>

处理类:

复制代码 代码如下:

/**

* 文件上传

* @param req

* @param resp

* @throws ServletException

* @throws IOException

*/

protected void doUpload(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

boolean flag = true;

String email = "";

String dataId = String.valueOf(new Date().getTime());

//生成dataId目录

String newPath = estPath + "/" + dataId;

createDir(newPath);

//生成data目录

newPath = estPath + "/" + dataId + "/data";

createDir(newPath);

//生成data目录

newPath = estPath + "/" + dataId + "/result";

createDir(newPath);

try{

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

List<FileItem> list = upload.parseRequest(req);

for(FileItem item : list){

if(!(item.isFormField())){

System.err.println("item name:" + item.getName());

if((item!=null)&&(item.getName()!=null)&&(!(item.getName().equals("")))){

String uploadFilename = item.getName();

//处理文件上传

InputStream in = item.getInputStream();

int len = 0;

byte[] b = new byte[1024];

newPath = estPath + "/" + dataId + "/data/";

FileOutputStream out = new FileOutputStream(newPath + uploadFilename);

while((len=in.read(b))>0){

out.write(b, 0, len);

}

in.close();

out.close();

item.delete(); //删除item对应的临时文件

}

}else{

String fValue = item.getString();

if(fValue.indexOf("@")!=-1){

//邮箱

email = fValue;

System.err.println("email:" + email);

}

}

}

}catch (Exception e) {

flag = false;

System.err.println("文件上传失败!" + e);

}

}

req.setAttribute("flag", flag);

req.getRequestDispatcher("/view/est.jsp").forward(req, resp);

}

2、邮件发送:

复制代码 代码如下:

public class EmailAttachService {

private static String host = "smtp.163.com";

private static String username = "";

private static String password = "";

private static String mailSubject = "";

public static Vector vfile = new Vector();

//添加附件

public static void addAttachemnt(String fPath){

vfile.add(fPath);

}

//发送邮件

public static void sendMail(String emailTo,String msg) {

// vfile 附件文件集合

try {

Properties props = new Properties();// 获取系统环境

Authenticator auth = new EmailAuthenticator(username, password);// 进行邮件服务用户认证

props.put("mail.smtp.host", host);

props.put("mail.smtp.auth", "true");

Session session = Session.getDefaultInstance(props, auth);

// 设置session,和邮件服务器进行通讯

MimeMessage message = new MimeMessage(session);

// 设置邮件发送者的地址

message.setFrom(new InternetAddress(username));

// 设置邮件接收的地址

message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));

// 设置邮件主题

message.setSubject(mailSubject);

// 构造Multipart

Multipart mp = new MimeMultipart();

// 向Multipart添加正文

MimeBodyPart content = new MimeBodyPart();

content.setContent(msg, "text/html;charset=gb2312");

mp.addBodyPart(content);

// 向Multipart添加附件

Enumeration efile = vfile.elements();

while(efile.hasMoreElements()){

MimeBodyPart fattach = new MimeBodyPart();

String fName = efile.nextElement().toString();

FileDataSource fds = new FileDataSource(fName);

fattach.setDataHandler(new DataHandler(fds));

fattach.setFileName(MimeUtility.encodeWord(fds.getName(), "GB2312",null));

mp.addBodyPart(fattach);

}

vfile.removeAllElements();

message.setContent(mp);

// 设置邮件发送时期

message.setSentDate(new Date());

message.saveChanges();

//发送邮件

Transport.send(message);

} catch (Exception e) {

e.printStackTrace();

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新JSP教程学习
    热门JSP教程学习
    编程开发子分类