2012-06-14 33 views
0

所以我有一個servlet,它的網址是像blah.do?params=xyzservlet的PDF上來文本中鉻

,並在servlet我的代碼類似於

ServletOutputStream out = response.getOutputStream(); 
request.setAttribute("Content-Type","application/pdf"); 
request.setAttribute("Content-Disposition","attachment;filename=test.pdf"); 
byte[] bytes = SystemServer.getFileContents(fileId).getBytes();  
request.setAttribute("Content-Length","" + bytes.length); 
out.write(bytes, 0, bytes.length); 
out.flush(); 

我用

window.open(url,"my file","someparams"); 

但是鉻被打開窗口作爲純文本和視圖源確認這是輸出的所有是

%PDF-1.4 %áéëÓ 2 0 obj ..... all contents....%%EOF 

所以,我怎麼能強迫它拿出爲PDF

請告訴我奇怪的是我用相同的代碼來獲取圖像返回給瀏覽器,它工作正常

回答

1

您需要設置響應對象的屬性而不是要求。

+0

你這個人 - 很好被發現 – user1343952

0

您正在將幾件事情設置爲請求屬性,這些屬性實際上應在響應中設置。

response.setContentType("application/pdf"); 
response.setContentLength(bytes.length); 
response.addHeader("Content-Disposition","attachment;filename=test.pdf");