加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

jspsmart文件上传与邮件发送的例子

发布时间:2023-07-13 15:06:31 所属栏目:教程 来源:
导读:jspsmart文件上传与邮件发送的实例

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

页面:

复制代码 代码如下:www.CuoXIn.com

<form class="form-horizontal" id=“estFor
jspsmart文件上传与邮件发送的实例

1、jspsmart文件上传(普通表单,带有普通表单域、若干个文件选择域)
 
页面:
 
复制代码 代码如下:www.CuoXIn.com
 
<form class="form-horizontal" id=“estForm” action="/tools/toolServlet?type=est" method="post" enctype="multipart/form-data">
 
<div class="control-group">
 
<label class="control-label" for="email">Email</label>
 
<div class="controls">
 
<input type="text" id="email" name="email" placeholder="Email" onblur="checkEmail()">
 
<span class="help-inline"></span>
 
</div>
 
</div>
 
<div class="control-group">
 
<label class="control-label" for="file">File</label>
 
<div class="controls">
 
<input type="file" name="file" id="file" onchange="getFileInfo()"/>
 
<span class="help-inline"></span>
 
</div>
 
</div>
 
<!-- 隐藏文件域 begin
 
<div class="control-group" id="hiddenFileDiv" style="display: none;">
 
<label class="control-label" for="file">File</label>
 
<div class="controls">
 
<input type="file" name="file1" id="file1" />
 
<span class="help-inline"></span>
 
</div>
 
</div>-->
 
<!-- 隐藏文件域 end
 
<div class="control-group">
 
<label class="control-label" for="file">crossmatch</label>
 
<div class="controls">
 
<select name="crossmatch" id="crossmatch">
 
<option value="Y">Y</option>
 
<option value="N">N</option>
 
</select>
 
<span class="help-inline"></span>
 
</div>
 
</div>-->
 
<div class="control-group">
 
<div class="controls">
 
<!-- <a href="javascript:void(0);" id="upload" class="btn">submit</a>-->
 
<button type="submit" class="btn" id="upload">submit</button>
 
<button type="reset" class="btn" id="reset">reset</button>
 
</div>
 
</div>
 
</form>
 
 
处理类:
 
复制代码 代码如下:www.CuoXIn.com
 
/**
 
* 文件上传
 
* @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、邮件发送:
 
复制代码 代码如下:www.CuoXIn.com
 
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();
 
}
 
}
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!