java从页面下载pdf文件到本地
Posted 蜜桃婷婷酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从页面下载pdf文件到本地相关的知识,希望对你有一定的参考价值。
java从页面下载pdf文件,strtus2为例,其他框架语法大致一样
直接上代码
这边我传了个参数 从数据库中查出来文件存在服务器的相对路径
页面
<button class="layui-btn " onclick="downloadFile('<c:out value="${list.upload_path}" />');" />下载</button>
js
function downloadFile(path){
window.location.href="/SubjPsbg.do?method=downloadPDF&path="+path;
}
方法1
try {
String pactNo = null;//打开下载弹出层默认的名字,也可以替换成数据库中文件本身的名字
String fileName=pactNo+".pdf";
System environment = null;
File file = new File(environment.getProperty("JXZM.path")+pactNo+".pdf");
BufferedInputStream bis = null;
OutputStream os = null;
FileInputStream fileInputStream = null;
response.setCharacterEncoding("utf-8");
response.setContentType("application/pdf"); // word格式
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
try {
fileInputStream = new FileInputStream(file);
byte[] buff = new byte[1024];
bis = new BufferedInputStream(fileInputStream);
os = response.getOutputStream();
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
i = bis.read(buff);
os.flush();
}
os.flush();
os.close();
// return SimpleResult.ok("导出成功",os);
} catch ( IOException e ) {
e.printStackTrace();
// return SimpleResult.fail("导出失败",null);
} finally {
if (bis != null) {
try {
bis.close();
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
// return SimpleResult.fail("导出失败",null);
}
}
}
}catch (Exception e){
System.out.println(e);
// return null;
}
方法2
try {
String path = request.getParameter("path"); //文件所在路径
KwmisSubjUploadlForm ksuForm=(KwmisSubjUploadlForm)form;
String fileUrl = path;
String htFilePath= servlet.getServletContext().getRealPath(fileUrl);
File file = new File(htFilePath);
InputStream fis = new FileInputStream(file);
String openName="下载文件";//打开下载弹出层默认的名字,也可以替换成数据库中文件本身的名字
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachement;filename="+ new String(openName.getBytes("gb2312"), "ISO8859-1" )+".pdf;");
response.setContentType("application/pdf;charset=GBK");
byte[] b = new byte[1024];
int len;
while ((len = fis.read(b)) != -1) {
response.getOutputStream().write(b, 0, len);
}
response.flushBuffer();
fis.close();
}
以上是关于java从页面下载pdf文件到本地的主要内容,如果未能解决你的问题,请参考以下文章
JAVA - 从网络服务器下载二进制文件(例如 PDF)文件