我现在可以获得邮件的所有信息,但是如何在jsp页面中的超链接里下载附件呢?
附件名我可以接收到,我想把 附件名 做成超链接,点击的时候提交到一个action,
然后直接弹出一个下载框直接提示下载?
<td>
附件:
<a href="downloadFile.action?msgNo="<s:property value="msgNo" /> >${filename }</a>
</td>
类似于这个,但是后台是如何实现的呢?
请大侠们给点提示或者是实现代码...
小弟感激不尽!~
附件名我可以接收到,我想把 附件名 做成超链接,点击的时候提交到一个action,
然后直接弹出一个下载框直接提示下载?
<td>
附件:
<a href="downloadFile.action?msgNo="<s:property value="msgNo" /> >${filename }</a>
</td>
类似于这个,但是后台是如何实现的呢?
请大侠们给点提示或者是实现代码...
小弟感激不尽!~
http://download.csdn.net/source/1323450这是我上传的java写的小项目,可以上传emial和附件,很简单,你看看。
如何实现呢?
谢谢...等待中...
* 下载action,调用时传值下载路径即可
*
* @return
*/
public String downLoad() {
HttpServletRequest request = request();
HttpSession session = session();
HttpServletResponse response = response();
UserEmp userEmp = (UserEmp) session.getAttribute("userObject");
if (userEmp == null) {
return LOGIN;
} else {
String path = request.getParameter("path");
try {
//转码,如果有中文
path = new String(path.getBytes("iso-8859-1"), "utf-8");
//获取文件名
String fileName = path.split("/")[path.split("/").length - 1];
//设置输出方式
response.setContentType("text/plain");
//设置输出编码
response.setCharacterEncoding("utf-8");
//设置输出头部信息,就是弹出的那个对话框,假如有中文,编码一下
response.setHeader("Content-disposition",
"attachment;filename=" + URLEncoder.encode(fileName,"utf-8"));
//创建流
byte[] b = new byte[1024];
InputStream in = new FileInputStream(new File(path));
OutputStream out = response.getOutputStream();
while (in.available() > 0) {
in.read(b);
out.write(b);
}
in.close();
out.close();
} catch (Exception e) {
if (Constants.DEBUG) {
e.printStackTrace();
}
}
return null;
} }
我的意思是,点击后直接提示下载信息,和右键另存为效果一样...
不过还是很感谢你!~
我现在的想法是把 邮件号, BodyPart号, 附件名传入一个servlet中,response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
int msgnum = Integer.parseInt(request.getParameter("msgNo"));
int bodynum =Integer.parseInt(request.getParameter("bodynum"));
String filename = request.getParameter("filename");
Properties props = new Properties();
props.setProperty("mail.store.protocol", protocol);
props.setProperty("mail.pop3.host", pop3Server);
Session session = Session.getDefaultInstance(props);
Store store;
try {
store = session.getStore();
store.connect(pop3Server, username, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message msg = folder.getMessage(msgnum);
response.setHeader("Content-Disposition", "attacment;filename=" + filename);
Multipart multi = (Multipart) msg.getContent();
BodyPart bodypart = multi.getBodyPart(bodynum);
InputStream is = bodypart.getInputStream();
int c = 0;
while((c=is.read()) != -1){
out.write(c);
}
这样的话页面得到的是一堆乱码...:Rar!蠍s 埜t 倳?&硳Pl?3u dzyjml\电子邮件模块\JMail接收\代码\App_Code\MailTable.csu?5P[異N!jWW\JMai(l6e\犮Nx\App_Code\MailTable.cs ?溯矁圉?紇xd?傭??咹Z?好s0h餉?8B 9??勸梒歼AGGdL劣u帏eU]]邜裡梩U?~..................................我应该怎么办呢?