JavaMail上传多个附件时,用MultipartRequest 的getFileNames方法时无法获取文件名?
SendMail.html
<html>
<body>
<form action="sendMail" method="post" enctype="multipart/form-data">
From: <input type="text" name="from" ><br>
To: <input type="text" name="to"><br>
Subject: <input type="text" name="subject"><br>
Type <select name="type" size="1">
<option value="text/plain">文本</option>
<option value="text/html">网页</option>
</select><br>
file1<input type="file" name="file1" ><br>
file2<input type="file" name="file2"><br>
file3<input type="file" name="file3"><br>
Context<br>
<textarea rows="12" cols="60" name="context" ></textarea><br>
<input type="submit" value="Send"><br>
</form>
</body>
</html>
sendMail.java
public class sendMail extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb18030");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("GB18030");
// 重新封装请求对象----Oreilly
MultipartRequest mreq = new MultipartRequest(request,".",5*1024*1024,"GB18030");
String from = mreq.getParameter("from");
String to = mreq.getParameter("to");
String subject = mreq.getParameter("subject");
String context = mreq.getParameter("context");
String type = mreq.getParameter("type");
// 获取附件中的文件名
//String fileName = mreq.getFilesystemName("fileName");
Enumeration files = mreq.getFileNames();
String to1 = "test1@ysu.com";
String to2 = "test2@ysu.com";
// 确定要发送的邮件服务器地址
String mailServer = "tdj";
// 设置邮件的传输协议
try{
Properties prop = System.getProperties();
prop.put("mail.smtp.host", mailServer);
prop.put("mail.smtp.auth","true");
PopupAuthenticator popAuthenticator = new PopupAuthenticator();
PasswordAuthentication pop = popAuthenticator.performCheck("tdj","911");
Session mysession=Session.getInstance(prop,popAuthenticator);
// 建立邮件发送的连接
//Session session = Session.getDefaultInstance(prop,null);
// 创建发送信息的载体
Message msg = new MimeMessage(mysession);
URLName url = new URLName("127.0.0.1:25");
mysession.setPasswordAuthentication(url, pop);
// 设置相关的邮件属性
msg.setFrom(new InternetAddress(from));
// 点到点的发送
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 如果处理文件上传
while(files.hasMoreElements()){
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent(context,type+";charset=gb18030");//对于邮件的普通信息的处理
// 附件的处理
MimeBodyPart mbpFile = new MimeBodyPart();
String fileName = (String)files.nextElement();
FileDataSource fds = new FileDataSource(new File(fileName));
mbpFile.setDataHandler(new DataHandler(fds));
mbpFile.setFileName(MimeUtility.encodeText(fds.getName(), "gb18030","B"));
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbpFile);
msg.setContent(mp);
}
if(!files.hasMoreElements()){
// 设置邮件内容
msg.setContent(context,type+";charset=gb18030");
}
// 发送
Transport.send(msg);
}catch(Exception e){
e.printStackTrace();
out.println("Mail send failed!");
return;
}
out.println("Mail send success!");
out.flush();
out.close();
}
}
相关推荐
CO-043A Released SHIPPING AND HANDLING TRAY FOR LP5 SOCAMM2 MODULE.rar
CO-043A Released SHIPPING AND HANDLING TRAY FOR LP5 SOCAMM2 MODULE.rar
阴影蜘蛛的判定与处理 vue
阴影蜘蛛的判定与处理 vue
硕士复现燃料电池供氢系统建模及控制策略Simulink仿真(附带说明PPT+参考文献+复现模型+实物源码)
内容概要:本文围绕燃料电池供氢系统的建模与控制策略展开,依托Simulink仿真平台构建了完整的系统动态模型,深入研究了供氢过程的关键动态特性及先进控制方法的设计与实现。内容涵盖系统建模流程、控制策略设计、仿真验证与结果分析,并配套提供详细的说明PPT、参考文献、可复现的仿真模型及实物源码等丰富资源,便于读者系统性地理解与复现研究成果。研究重点在于优化供氢压力、流量与响应速度,提升燃料电池系统的运行效率、稳定性与动态适应能力,对新能源领域的工程实践与学术研究具有重要参考价值。; 适合人群:具备自动化、电气工程、能源动力或控制科学等相关专业背景,正在从事新能源技术、氢能系统或仿真实验研究的硕士研究生、博士生及科研人员。; 使用场景及目标:①掌握燃料电池供氢系统的核心建模方法与Simulink高级仿真技巧;②学习并复现已有先进控制策略,进一步开展系统优化与创新设计;③为撰写高质量学术论文、完成学位课题或工程验证提供完整的理论支持与技术方案。; 阅读建议:建议结合所提供的PPT讲解、参考文献与Simulink模型逐步操作,注重理论分析与仿真实践的深度融合,在仿真过程中主动调试参数、观察动态响应,以深刻理解系统行为与控制机理,最大化学习与研究成效。
MATLAB代码:比较不同FACTS与可再生能源技术应用遗传算法的研究.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
head_model.rar
head_model.rar


Web 开发
