java实现通过url实现浏览器下载pdf文件
java实现通过url实现浏览器下载pdf文件
// 下载pdf文件工具类
public static void toDownload(HttpServletRequest request, HttpServletResponse response, Map<String, Object> map) {ServletOutputStream out = null;InputStream inputStream = null;try {//文件名String pdfName = map.get("pdfName").toString();//路径String path = map.get("PdfUrl").toString();// 获取外部文件流logger.info("下载中------invPdfUrl=" +path);URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(3 * 1000);//防止屏蔽程序抓取而返回403错误conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");inputStream = conn.getInputStream();/*** 输出文件到浏览器*/int len = 0;// 输出 下载的响应头,如果下载的文件是中文名,文件名需要经过url编码response.setContentType("text/html;charset=utf-8");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(pdfName, "UTF-8"));response.setHeader("Cache-Control", "no-cache");out = response.getOutputStream();byte[] buffer = new byte[1024];while ((len = inputStream.read(buffer)) > 0) {out.write(buffer, 0, len);}out.flush();logger.info("pdf文件下载完成.....");} catch (Exception e) {logger.error("pdf文件下载异常,e = {}", e);e.printStackTrace();} finally {if (inputStream != null) {try {inputStream.close();} catch (Exception e) {}}if (out != null) {try {out.close();} catch (Exception e) {}}}}
jsp页面
//function toDownload(invPdfUrl){window.location.href = "/toDownload?invPdfUrl="+invPdfUrl;}
本地下载
package com.cellstrain.icell.util;import java.io.*;
import java.net.*;public class DownloadPdf {/*** 从网络Url中下载文件* @param urlStr* @param fileName* @param savePath* @throws IOException*/public static void downLoadByUrl(String urlStr,String fileName,String savePath) throws IOException{URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection)url.openConnection();//设置超时间为3秒conn.setConnectTimeout(5*1000);//防止屏蔽程序抓取而返回403错误conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//得到输入流InputStream inputStream = conn.getInputStream();//获取自己数组byte[] getData = readInputStream(inputStream);//文件保存位置File saveDir = new File(savePath);if(!saveDir.exists()){saveDir.mkdir();}File file = new File(saveDir+File.separator+fileName);FileOutputStream fos = new FileOutputStream(file);fos.write(getData);if(fos!=null){fos.close();}if(inputStream!=null){inputStream.close();}System.out.println("info:"+url+" download success");}/*** 从输入流中获取字节数组* @param inputStream* @return* @throws IOException*/public static byte[] readInputStream(InputStream inputStream) throws IOException {byte[] buffer = new byte[1024];int len = 0;ByteArrayOutputStream bos = new ByteArrayOutputStream();while((len = inputStream.read(buffer)) != -1) {bos.write(buffer, 0, len);}bos.close();return bos.toByteArray();}public static void main(String[] args) {try{downLoadByUrl("http://218.2.192.22:9000/aisino_cms/testpdf//1503002010206301/2020/06/11/1/INV202006111124446001_159184920735.pdf","发票.pdf","E:/upload/protocol");}catch (Exception e) {// TODO: handle exception}}
}
java实现通过url实现浏览器下载pdf文件相关推荐
- java实现从url路径中下载pdf文档到本地
import java.io.*; import java.net.*;public class DownloadPdf {/*** 从网络Url中下载文件* @param urlStr pdf网页的 ...
- 使用js直接下载pdf文件而不用在新的浏览器窗口打开
最近接了一个需求,要求用户点击下载按钮后直接下载pdf文件,而不是打开一个新窗口,让用户再去手动保存. 接到需求后我立刻着手在网上查找文档,发现很多声称可以实现直接下载的方法都不行,只有下面这个方法成 ...
- java从页面下载pdf文件到本地
java从页面下载pdf文件,strtus2为例,其他框架语法大致一样 直接上代码 这边我传了个参数 从数据库中查出来文件存在服务器的相对路径 页面 <button class="la ...
- 解决java web中safari浏览器下载后文件中文乱码问题
解决java web中safari浏览器下载后文件中文乱码问题 参考文章: (1)解决java web中safari浏览器下载后文件中文乱码问题 (2)https://www.cnblogs.com/ ...
- 微信公众号内,实现下载 PDF 文件。
背景:需要在 微信公众号 内实现,通过点击一个[下载PDF文件]按钮,预期将 PDF 文件下载到本地自行打印. 前言:首先,本文采用的是 配合 后端 的实现方案.后端 返回file文件,通过 a 链接 ...
- 下载PDF文件及打印PDF文件
一:下载PDF 如果单纯的用A标签设置download属性来下载是直接打开pdf文件的而不是下载. import { download } from './download'; /*** 下载PDF文 ...
- Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器显示pdf文件
Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器直接显示pdf文件 测试环境的浏览器版本: Chrome :90.0.4430.93(64 位) FireFox :88. ...
- Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)
一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...
- 苹果手机微信扫码下载pdf文件,出现空白页。
问题描述 要实现微信扫二维码下载pdf文件的功能,苹果手机微信扫码后,第一次扫码,提示下载:后续扫码有时pdf文件被空白页遮挡,有时正常:,用安卓手机微信扫码.或者用苹果手机支付宝扫码都是正常,怀疑是 ...
最新文章
- 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
- jquery全选/取消全选(反选)/单选操作
- Windows系统下多显示器模式开发
- 调查了6万多名开发者后,我们发现了这些...
- 转:只能选择GridView中的一个CheckBox(单选CheckBox)
- 学习难吗?从画一个点开始,从点点鼠标开始
- Python库glob作用分析
- R语言学习笔记(七)方差分析
- 计算机学业水平测试网,学业水平测试
- oracle mysql数据库管理工具下载_Oracle数据库管理工具PC版-Oracle数据库管理工具下载v15.0.21.0(32/64)-IE浏览器中文网站...
- 中国工业企业数据库 | 特殊样本统计
- LM75温度传感器数据采集实验
- 在WIN2012R2和WIN2016服务器打开网站慢的解决方法
- 借助Granimjs制作绚丽的流体动画
- electron_笔记
- 2018深度学习在个性化推荐中的应用
- 世界上排名前100的英文歌详细名单及介绍
- Windows server 2003 R2之一:通过域控建立OU跟USER
- 网站广告效果评测指标介绍
- 工作5年,我的互联网工具箱(30个提升办公效率的神器)