簡體   English   中英

如何在瀏覽器中顯示byte []流中的pdf?

[英]How to display pdf from byte[] stream in browser?

我正在使用servlet,並將帶有byte[]流的http響應傳遞給瀏覽器。 我已經設置了response.setContentType("application/pdf"); 在我的Java代碼,但它仍然顯示垃圾代碼,如: JVBERi0xLjQKJeLjz9MKNCAwIG9iago8PC9UeXBlL1hPYmplY3QvQ29sb3JTcGFjZS9EZXZpY2VSR0IvU3VidHlwZS9JbWFnZS9CaXR

我應該怎么做才能在瀏覽器中正確查看pdf?

由於PDF文檔的第一個字符為%PDF,后跟版本號,因此可以輕松地對其進行識別。

您可以在此處看到顯示的內容不遵循該規則,因此沒有PDF。 仍然,此String看起來很像Base 64編碼的內容,的確,如果您嘗試使用base64解碼器,則會看到解碼后的輸出打印以以下內容開頭的文檔:

%PDF-1.4
... some binary stuff

因此,似乎缺少的是在通過響應將其發送之前對內容進行解碼。 為了執行這種解碼,Apache Commons Codec具有Base64編碼和解碼的靈活實現,但是您也可以使用各種類和utils來完成這項工作。 請參閱此SO線程的答案:

用Java解碼Base64數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM