所以我有一个servlet,其URL类似于blah.do?params=xyz
在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");
但是chrome正在打开窗口,因为纯文本和视图源确认输出的所有内容都是
%PDF-1.4 %áéëÓ 2 0 obj ..... all contents....%%EOF
那我怎么能强迫它作为pdf
出现呢什么是奇怪的是我使用相同的代码将图像恢复到浏览器并且工作正常
答案 0 :(得分:1)
您需要在响应对象上设置这些属性而不是请求。
答案 1 :(得分:0)
您正在设置多个事项作为请求属性,这些属性应该实际应在响应上设置。
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.addHeader("Content-Disposition","attachment;filename=test.pdf");