我正在尝试通过java代码创建一个xls文件,并允许用户下载它。下载代码在JSP中,它在IE9和其他浏览器中运行良好。但它在IE 8中给出错误“无法下载文件。无法打开此网站。请求的网站要么不可用,要么找不到。请稍后再试。”
我的JSP代码如下。
<%@ page import="org.apache.poi.ss.usermodel.Workbook"%><%@ page import="java.io.*"%>
<%response.setHeader("Pragma","no-cache");
response.setHeader("Content-disposition", "attachment;filename=DataTemplate.xls");
response.setContentType("application/vnd.ms-excel");
OutputStream os = response.getOutputStream();
((Workbook)request.getAttribute("result")).write(os); os.flush();os.close();%>
我按照微软网站的建议检查了IE的所有设置。互联网上其他用户的建议是重新安装IE8,但这对我来说听起来不太好,因为我在多台机器上遇到了这个问题。
欢迎任何帮助。
感谢。
答案 0 :(得分:4)
如果服务器发送“Cache-control:no-store
”标头或,则会出现此问题
发送“Cache-control:no-cache
”标题。
其中一个解决方案是将Cache-Control: private
添加到响应标头。
此外,Microsoft支持的官方博客很少。检查这些链接,其中一个应该可以帮助您解决问题。
答案 1 :(得分:3)
谢谢Hardik。你的回答帮助我解决了我的问题。
我将我的代码修改为incldue follow,并在IE8和IE9中正常工作。
response.setHeader("Cache-Control","private");
response.setHeader("Pragma","private");