日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java pdf文件下载_Java后台返回PDF文件预览下载

發布時間:2023/12/8 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java pdf文件下载_Java后台返回PDF文件预览下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java后臺返回PDF文件預覽下載

開始的代碼的系統代碼為:

ResponseEntity 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 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,預覽,代碼,filename,Content,pdf,PDF,response,下載

來源: https://blog.csdn.net/qq_39164234/article/details/111996244

總結

以上是生活随笔為你收集整理的java pdf文件下载_Java后台返回PDF文件预览下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。