当前位置:编程学习 > JAVA >>

关于JAVAMAIL的附件下载

我的代码是这样的

@RequestMapping("four_download")
public void fourDownload(HttpSession session, HttpServletResponse response,HttpServletRequest request) throws Exception
{
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//获得当前邮件用户
JamesUser juser = JamesUserUtil.getJamesUser(session);
//获得邮件用户具体信息 获得密码
UserInfo userinfo = JamesUserUtil.getUserInfo(session);
//获得邮件ID
long uid = Long.parseLong(request.getParameter("uid"));
//获得邮箱类型
int folderType = Integer.parseInt(request.getParameter("folderType"));
//获得附件的编号
int bodyId = Integer.parseInt(request.getParameter("bodyId"));
//获得文件名
String fileName = request.getParameter("fileName");

fileName=java.net.URLDecoder.decode(fileName,"UTF-8");

ReceiveMail mail = new ReceiveMail(juser.getUserName(), userinfo.getUserPass());// 初始化接收邮件参数

IMAPFolder folder = mail.openFolder(userReceiveMailService.folderType(folderType), Folder.READ_WRITE);

Message message = folder.getMessageByUID(uid);

response.setHeader("Content-Disposition", "attachment;filename="+fileName);

Multipart multipart = (Multipart) message.getContent();

BodyPart bodyPart = multipart.getBodyPart(bodyId);

InputStream input = bodyPart.getInputStream();
int temp = 0;
while((temp = input.read()) != -1){
out.write(temp);
}
//mail.handleMultipart(message);
//userReceiveMailService.attachmentDownLoad(juser.getUserName(), userinfo.getUserPass(),1, uid, fileName);
}


为什么下载下来的文件的内容是空的?都是邮件PART的编码格式的
困扰我三天了 求解脱啊。。。。
JavaMail 邮件 Java 附件 --------------------编程问答-------------------- 建议debug跟下bodyPart是否有数据、out.write到底写了多少字节,这一堆对象套对象的,用眼看有点儿费劲。。
补充:Java ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,