我的服务器上有一个PDF文件,需要用户从客户端下载。打开/另存为...对话框不显示
使用Spring框架,我用javax.servlet.http.HttpServletResponse创建正确的反应和相应的头:
response.setHeader("Expires", "-1");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment;filename="content.pdf");
response.setContentLength(content.size());
然后我用ServletOutputStream的写的内容:
ServletOutputStream os;
try {
os = response.getOutputStream();
os.write(((ByteArrayOutputStream)baos).toByteArray());
baos.close();
os.flush();
os.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
在客户端,我收到HTTP代码200,并收到正确的响应正文,PDF文件,但“另存为...”弹出窗口未出现。
在Header配置中是否有任何原因可能导致此问题或者它可能在其他地方?
谢谢。
您正在使用哪种浏览器? –
@MicheleMariotti IE 9 – xptoo
你是从servlet还是从jsp页面调用这段代码?你确定没有设置其他头文件吗? –