[英]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線程的答案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.