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時修改檔名稱問題
相關文章
- kkFileView預覽檔案 指定預覽方式為pdfView
- JS下載後臺介面返回的二進位制檔案JS
- html中線上預覽pdf檔案之pdf線上預覽外掛HTML
- 【antd 3.x】upload上傳元件預覽pdf格式檔案和下載ofd格式檔案元件
- uniapp 線上預覽pdf 或者 檔案APP
- 微信小程式檔案預覽和下載-檔案系統微信小程式
- vue中如何實現pdf檔案預覽?Vue
- 如何使用預覽程式編輯PDF檔案?
- 使用PDF.JS外掛在HTML中預覽PDF檔案JSHTML
- 檔案上傳/下載後臺程式碼
- vue整合pdfjs,實現pdf檔案預覽VueJS
- 利用 ICEpdf 快速實現 pdf 檔案預覽功能
- vue通過url下載檔案,直接預覽問題Vue
- Web專案中預覽PDFWeb
- 如何在 Mac 上使用預覽將 .pdf 檔案更改為 .jpg 檔案Mac
- Mac如何使用預覽應用合併PDF檔案 Mac合併PDF檔案教程詳解Mac
- 前端實現線上預覽pdf、word、xls、ppt等檔案前端
- PDF、PPT、Excel、Word、視訊等格式檔案線上預覽Excel
- Web方式預覽Office/Word/Excel/pdf檔案解決方案WebExcel
- 解決java web中safari瀏覽器下載後檔案中文亂碼問題JavaWeb瀏覽器
- watchOS 5開發者預覽版描述檔案下載安裝教程
- 檔案下載時前後臺MD5校驗
- 介面返回二進位制檔案的下載。
- Vue專案中使用基於pdf.js的vue-pdf外掛在pc瀏覽器下閱覽PDF檔案VueJS瀏覽器
- JAVA檔案上傳下載Java
- 結合 Laravel 實現檔案(PDF、world、Excel 之類)線上預覽?LaravelExcel
- 直播平臺搭建,使用vue-pdf 實現pdf線上預覽並且自定義預覽框高度Vue
- 在electron下實現PDF線上預覽功能
- java生成PDF檔案【Z】Java
- java上傳檔案跟批量下載檔案Java
- vue3 點選下載檔案,不開啟預覽,已解決Vue
- C# 匯出pdf(瀏覽器不預覽直接下載)C#瀏覽器
- Java實現檔案下載功能Java
- Java檔案下載 幾種方式Java
- kkFileView檔案線上預覽View
- Jquery Media外掛使用,解決線上預覽及開啟PDF檔案jQuery
- Android下載網路pdf檔案儲存至本地Android
- java模板匯出PDF檔案Java