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文件相关推荐

  1. java实现从url路径中下载pdf文档到本地

    import java.io.*; import java.net.*;public class DownloadPdf {/*** 从网络Url中下载文件* @param urlStr pdf网页的 ...

  2. 使用js直接下载pdf文件而不用在新的浏览器窗口打开

    最近接了一个需求,要求用户点击下载按钮后直接下载pdf文件,而不是打开一个新窗口,让用户再去手动保存. 接到需求后我立刻着手在网上查找文档,发现很多声称可以实现直接下载的方法都不行,只有下面这个方法成 ...

  3. java从页面下载pdf文件到本地

    java从页面下载pdf文件,strtus2为例,其他框架语法大致一样 直接上代码 这边我传了个参数 从数据库中查出来文件存在服务器的相对路径 页面 <button class="la ...

  4. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 参考文章: (1)解决java web中safari浏览器下载后文件中文乱码问题 (2)https://www.cnblogs.com/ ...

  5. 微信公众号内,实现下载 PDF 文件。

    背景:需要在 微信公众号 内实现,通过点击一个[下载PDF文件]按钮,预期将 PDF 文件下载到本地自行打印. 前言:首先,本文采用的是 配合 后端 的实现方案.后端 返回file文件,通过 a 链接 ...

  6. 下载PDF文件及打印PDF文件

    一:下载PDF 如果单纯的用A标签设置download属性来下载是直接打开pdf文件的而不是下载. import { download } from './download'; /*** 下载PDF文 ...

  7. Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器显示pdf文件

    Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器直接显示pdf文件 测试环境的浏览器版本: Chrome :90.0.4430.93(64 位) FireFox :88. ...

  8. Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...

  9. 苹果手机微信扫码下载pdf文件,出现空白页。

    问题描述 要实现微信扫二维码下载pdf文件的功能,苹果手机微信扫码后,第一次扫码,提示下载:后续扫码有时pdf文件被空白页遮挡,有时正常:,用安卓手机微信扫码.或者用苹果手机支付宝扫码都是正常,怀疑是 ...

最新文章

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  2. jquery全选/取消全选(反选)/单选操作
  3. Windows系统下多显示器模式开发
  4. 调查了6万多名开发者后,我们发现了这些...
  5. 转:只能选择GridView中的一个CheckBox(单选CheckBox)
  6. 学习难吗?从画一个点开始,从点点鼠标开始
  7. Python库glob作用分析
  8. R语言学习笔记(七)方差分析
  9. 计算机学业水平测试网,学业水平测试
  10. oracle mysql数据库管理工具下载_Oracle数据库管理工具PC版-Oracle数据库管理工具下载v15.0.21.0(32/64)-IE浏览器中文网站...
  11. 中国工业企业数据库 | 特殊样本统计
  12. LM75温度传感器数据采集实验
  13. 在WIN2012R2和WIN2016服务器打开网站慢的解决方法
  14. 借助Granimjs制作绚丽的流体动画
  15. electron_笔记
  16. 2018深度学习在个性化推荐中的应用
  17. 世界上排名前100的英文歌详细名单及介绍
  18. Windows server 2003 R2之一:通过域控建立OU跟USER
  19. 网站广告效果评测指标介绍
  20. 工作5年,我的互联网工具箱(30个提升办公效率的神器)

热门文章

  1. 解决erwin逆向工程,logical不显示中文问题
  2. 几个 Spotlight的下载地址和注册码
  3. 淘宝记账王3.1【为淘宝卖家设计的记账软件】
  4. 刷题日记:Python蓝桥杯--特殊的回文数
  5. 云服务器的内网IP和公网IP应该怎么理解?有什么用?
  6. 计算机图形学 第4章 多边形填充
  7. 基于asp.net的公安报案登记管理系统的设计与实现
  8. vmware虚拟机mac地址冲突解决方法
  9. 开发费用超出预算,如何提高估算准确性?
  10. 艾司博讯:拼多多多多进宝适合新手吗