Java后台返回PDF文件预览下载
Java后台返回PDF文件预览下载
开始的代码的系统代码为:
ResponseEntity<byte[]> onePdf = s3Wrapper.download(contractEntity.getContractUrl());out.write(onePdf.getBody());response.setContentType("application/pdf");response.setHeader("Content-Disposition", "attachment; filename=" + Encodes.urlEncode(contractEntity.getContractName()));
一开始没有看出来代码是有问题的,pdf流在response设置头信息时已经返回了,相当于最后两段设置头的代码没调用,在使用HttpServletResponse对象时要考虑到代码前后的关系,避免出错。
把设置头的代码放在流输出之前还是有问题,调用接口时发现pdf文件直接下载了,没有达到预览的效果。检查了半天之后发现是attachment属性的问题,
参考如下:
Content-Disposition的使用方法
一、作用:
1)希望某类或者某已知MIME类型的文件(比如:*.gif;txt;.htm)能够在访问时弹出"文件下载对话框"
2)希望客户端下载时以指定文件名显示
3)希望某文件直接显示而不是弹出文件下载对话框
二、使用语句:
response.setHeader(“Content-disposition”, “attachment;filename=” +filename);
Content-disposition:属性名
attachment:表示以附件方式下载,如果要在页面中打开,可以改为inline.
注意:filename如果是中文会出现乱码:解决办法:
1、将filename 替换为 new String(filename.getBytes(), “ISO8859-1”);
2、将filename 替换为 URLEncoder.encode(filename, “utf-8”);
最后的代码语为
ResponseEntity<byte[]> onePdf = s3Wrapper.download(contractEntity.getContractUrl());response.setContentType("application/pdf");response.setHeader("Content-Disposition", "inline; filename=" + Encodes.urlEncode(contractEntity.getContractName()));out.write(onePdf.getBody());
pdf文件可以正常预览并且下载,问题解决。
如果需要解决java接口返回pdf时修改文件名称问题:
参考:java接口返回pdf时修改文件名称问题
Java后台返回PDF文件预览下载相关推荐
- java pdf文件下载_Java后台返回PDF文件预览下载
Java后台返回PDF文件预览下载 开始的代码的系统代码为: ResponseEntity onePdf = s3Wrapper.download(contractEntity.getContract ...
- java代码编辑器 pdf文件预览 主流SSM 代码生成器 shrio redis websocket即时通讯
获取[下载地址] QQ: 313596790 官网 http://www.fhadmin.org/ A 代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [ ...
- Java后台实现pdf文件在浏览器中预览
Java后台实现pdf文件在浏览器中预览 放在服务器的pdf文件不能通过完整路径访问,想要实现的效果是浏览器访问后台接口可以预览pdf文件,暂时是把pdf文件放在本地测试 通过输出流的方式将pdf文件 ...
- Java使用openOffice转PDF以及PDF文件预览乱码问题
Java使用openOffice转PDF以及PDF文件预览乱码问题 使用openOffice,支持doc, docx, .xls, .xlsx, .ppt, .pptx转pdf 一:依赖 <de ...
- JAVA 实现返回PDF文件流并进行下载
JAVA 实现返回PDF文件流并进行下载 首先确保本地存放pdf 保证通过路径可以拿到文件 我这边把pdf放在e盘下的目录 1.前台方法 原生ajax 发送请求返回文件流进行下载 function d ...
- 【iframe结合pdf.js实现pdf的预览/下载及打印功能】
iframe结合pdf.js实现pdf的预览/下载及打印 1.[下载pdf.js](http://mozilla.github.io/pdf.js/getting_started/#download) ...
- Vue PDF文件预览打印vue-pdf
Vue PDF文件预览vue-pdf 最近做项目,遇到预览PDF这个功能,在网上找了找,大多推荐的是pdf.js,不过在Vue中还是想偷懒直接npm组件,最后找到了一个还不错的Vue-pdf 组件,G ...
- Java 实现word pdf在线预览
Java 实现word pdf在线预览 最近项目有这个需求,查找了一些资料,在这整理一下. 首先,pdf的文件,浏览器本身支持预览,不需要做什么处理. controller: 简单说下思路:就是利用i ...
- 用vue-pdf包实现pdf文件预览,支持分页
vue项目实现pdf文件预览功能 下载vue-pdf包 npm install --save vue-pdf template模板内容: //pdf组件 <pdf :src="pdfF ...
- 手机端pdf文件预览pdf.js使用方法详解
虽然H5页面可以通过A直接访问html 但可惜的是 手机端H5页面这样做就直接变下载了 那么想要实现手机端的pdf文件预览就需要用到pdf.js了 首先 我们访问地址 http://mozilla.g ...
最新文章
- Kibana + Elasticsearch + ik分词的集群搭建
- Android开发工具——ADB(Android Debug Bridge) 三DalvikVM之jdwp线程
- python redis 消息队列
- 支付开发填坑记之支付宝
- goroutine sync.RWMutex读写锁RLock的使用
- 【数据结构与算法】内部排序之三:堆排序(含完整源码)
- tailwind css_什么是Tailwind CSS,如何将其添加到我的网站或React App中?
- 在eclipse中安装svn插件
- Hive文件存储格式和hive数据压缩
- SharePoint创建登录表单
- 二分函数lower_bound()
- Python Cartopy地图投影【2】
- c 语言所有符号,c语言 符号
- Excel·VBA自定义函数判断单元格元素相同/重复
- 计算机导论.mobi,计算思维:计算学科导论
- 为什么百度云可以给每位用户分配两T的存储空间?
- 每周一品 · 音圈电机(VCM)中的磁性材料
- 机器学习笔记(吴恩达老师)
- MySQL5.7安装--二进制方式安装
- 2021年4月26日 星期一 三月十五 阴