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文件损坏

JAVA - 从网络服务器下载二进制文件(例如 PDF)文件

Java如何把一个PDF转为tif

Java 在PDF中添加页面跳转按钮

javaweb jsp页面上点击链接下载文件 IE浏览器弹出“已经阻止从站点下载文件到您的计算机”

从url下载pdf,在flutter中保存到android中的手机本地存储