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時修改檔名稱問題
相關文章
- JS下載後臺介面返回的二進位制檔案JS
- kkFileView預覽檔案 指定預覽方式為pdfView
- 【antd 3.x】upload上傳元件預覽pdf格式檔案和下載ofd格式檔案元件
- html中線上預覽pdf檔案之pdf線上預覽外掛HTML
- uniapp 線上預覽pdf 或者 檔案APP
- 如何使用預覽程式編輯PDF檔案?
- vue整合pdfjs,實現pdf檔案預覽VueJS
- vue中如何實現pdf檔案預覽?Vue
- 微信小程式檔案預覽和下載-檔案系統微信小程式
- 檔案上傳/下載後臺程式碼
- 使用PDF.JS外掛在HTML中預覽PDF檔案JSHTML
- JAVA檔案下載Java
- vue通過url下載檔案,直接預覽問題Vue
- 如何在 Mac 上使用預覽將 .pdf 檔案更改為 .jpg 檔案Mac
- 解決java web中safari瀏覽器下載後檔案中文亂碼問題JavaWeb瀏覽器
- 記一次關於pdf 下載需求變更到 pdf 線上預覽
- 介面返回二進位制檔案的下載。
- 檔案下載時前後臺MD5校驗
- JAVA檔案上傳下載Java
- Vue專案中使用基於pdf.js的vue-pdf外掛在pc瀏覽器下閱覽PDF檔案VueJS瀏覽器
- watchOS 5開發者預覽版描述檔案下載安裝教程
- Android下載網路pdf檔案儲存至本地Android
- Java實現檔案下載功能Java
- vue3 點選下載檔案,不開啟預覽,已解決Vue
- VSCode 預覽 .md 檔案VSCode
- 結合 Laravel 實現檔案(PDF、world、Excel 之類)線上預覽?LaravelExcel
- Java操作PDF檔案之ITextJava
- java模板匯出PDF檔案Java
- C# 匯出pdf(瀏覽器不預覽直接下載)C#瀏覽器
- java 上傳 下載檔案工具類Java
- 直播平臺搭建,使用vue-pdf 實現pdf線上預覽並且自定義預覽框高度Vue
- Jquery Media外掛使用,解決線上預覽及開啟PDF檔案jQuery
- 原生js預覽ofd檔案JS
- 實現檔案快速預覽
- kkFileView檔案線上預覽View
- ElementUI 下載檔案前後端程式碼UI後端
- axios前後端分離下載檔案iOS後端
- Java 根據模板生成 PDF 檔案 以及 excel 檔案JavaExcel