您的位置:首页 > 编程语言 > Java开发

远程下载pdf文件 java代码

2015-09-26 23:00 369 查看
最近在搞一个pdf下载 下载远程文件

先把代码跟大家共享一下,如果找到更好的代码,会更新的

public String DownLoad_fun() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();

String pid = request.getParameter("path");
//		String mid = request.getParameter("mid");
String mid = pid.split(",")[1];
Post_meta post_meta = new Post_meta();
post_meta.setMeta_key("pdf_files");
post_meta.setMeta_value(mid.trim());
String str = postService.SelPostImg(post_meta);
String path=str.split("#")[0].split("@")[1];
System.out.println(path);
logger.info("--------->"+path);
try {
URL url = new URL(path);
Date date=new Date();
int rand = (int) (Math.random() * 1000000);
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
String filedisplay = str.split("#")[0].split("@")[2]+sdf.format(date)+rand+".pdf";// 下载文件时显示的文件保存名称
String filenamedisplay = URLEncoder.encode(filedisplay, "UTF-8");
HttpServletResponse response = ServletActionContext.getResponse();
response.setStatus(200);
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment;filename=" + filenamedisplay);

InputStream fileInputStream = url.openStream();
OutputStream responseOutputStream = response.getOutputStream();
int bytes;
while ((bytes = fileInputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
fileInputStream.close();
responseOutputStream.close();

} catch (Exception ex) {
ex.printStackTrace();
}
return "download_fun";
}


现在还是有错误,下载的功能是正常的,如果谁可以帮我找到错误可以留言哦!!

这个报错的问题已经解决了,就是吧最后那个

return "download_fun";
改为 return null 就可以了 因为已经吧reponse 各种流都给关闭了,这里再返回值就会报错。

如果要是通过ajax 实现的方法希望返回的时候都写 return null;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: