Springboot 以输出流形式 在线预览PDF 文件分存储 (本地/远程)
原因:本来是前端直接用url 显示pdf、但是url 容易暴露。
后来使用后台返回文件流的形式输出、前端显示、不多说直接上代码
1、文件存在服务器本地
@RequestMapping(value = "/preview", method = RequestMethod.GET)
public void pdfStreamHandler(HttpServletRequest request, HttpServletResponse response) {//PDF文件地址File file = new File("D:\\123.pdf");if (file.exists()) {byte[] data = null;FileInputStream input=null;try {input= new FileInputStream(file);data = new byte[input.available()];input.read(data);response.getOutputStream().write(data);} catch (Exception e) {System.out.println("pdf文件处理异常:" + e);}finally{try {if(input!=null){input.close();}} catch (IOException e) {e.printStackTrace();}}}
}
2、文件存在远程通过url 可以直接打开的那种
@GetMapping("getPdfView")
@ApiOperation(value = "PDF预览")
public void getPdfView(HttpServletRequest request, HttpServletResponse response){BufferedInputStream in = null;
String remoteFileUrl = "String remoteFileUrl = "http://10.0.5.38/image/download2/node1/2021/06/25/10/12115030882021-06-254772444994050582221.pdf";";
try {BossPspData bossPspData = pspService.selectByPrimaryKey(id);if (null == remoteFileUrl || remoteFileUrl.length() == 0) {throw new RuntimeException("remoteFileUrl is invalid!");}URL url = new URL(remoteFileUrl);byte[] data = null;in = new BufferedInputStream(url.openStream());int i;while ((i = in.read()) != -1) {response.getOutputStream().write(i);}in.close();response.getOutputStream().close();
}catch (Exception ex){ex.printStackTrace();
}finally {try {if(in!=null){in.close();}} catch (IOException e) {e.printStackTrace();}
}
}
Springboot 以输出流形式 在线预览PDF 文件分存储 (本地/远程)相关推荐
- html中在线预览pdf文件之pdf在线预览插件
html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...
- html做在线预览pdf文件,html中在线预览pdf文件之pdf在线预览插件
html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...
- android 在线预览pdf文件
android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 1.andorid原生自带的pdf管理库,主要提供 ...
- 如何在html中在线预览pdf文件?
方法1:使用 jquery js 库 1.引入 jquery-3.1.1.min.js 和 jquery.media.js 两个js文件,下载保存到本地 下载连接:jquery-3.1.1.min.j ...
- Vue-pdf实现在线预览PDF文件
前言 在大多数项目中都会遇到在线预览PDF文件,项目使用的是element ui,使用vue-pdf实现. 安装依赖 npm install --save vue-pdf 相关参数 参数介绍: url ...
- uniapp在线预览pdf文件
公司要求uniapp打包的h5和app都要能在线预览pdf文件.最开始是想找uniapp的插件,去插件市场搜了下,没得几个插件可用,且需要收费,所以直接用的pdf.js插件实现,在h5以及h5打包的a ...
- 网页中实现安卓手机在线预览PDF文件
写在前面:本文为转载,原文链接:https://blog.csdn.net/super_DuoLa/article/details/90207965原文链接 苹果手机可以直接在线预览PDF文件,而安卓 ...
- html 在线预览pdf功能,html中在线预览pdf文件之pdf在线预览插件
html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件!javascript 翻来覆去找到两种办法 ,最后采用了jquery.media.js插 ...
- js在线预览pdf文件
js在线预览PDF文件 一.效果预览 二.实现代码: <html> <head> <meta http-equiv="Content-Type" co ...
最新文章
- ComplexHeatmap |理解绘图逻辑绘制热图
- iPhone 13 Pro系列最新渲染图曝光:小刘海+大尺寸后置相机模组
- html 样式初始化,css样式初始化
- Python中的join函数
- Android各种dialog
- L1正则化与嵌入式特征选择(稀疏性)
- SQL查看存储过程相关信息
- babel import语法 js_webstorm配置babel自动转译es6的两种方法
- 网易云音乐encseckey算法php,网易云音乐热评api
- 用Python学《微积分B》(Fourier级数)
- 60个未来的新兴服务业最红火
- ubuntu 20.04gitlab-runner docker方式安装使用
- 部署https后访问提存在安全隐患NET::ERR_SSL_OBSOLETE_VERSION
- CheckBox和ListView的结合使用
- VR眼镜连接android设备,华为VR眼镜和电脑如何连接 投屏软件PCVR Assistant 2.0使用教程...
- RTL8723BU BTwifi
- VMware Workstation 11.0.0多国语言(含简体中文)+永久激活密钥
- 28、完美的RestApi
- 先行一步,7 大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
- 华为自研设备明年都将升级鸿蒙系统,华为杨海松:明年所有华为自研设备升级鸿蒙系统,将发布鸿蒙系统智能手机...