IE8中的下载文件代码失败但在IE9中有效

时间:2013-04-18 13:20:20

标签: internet-explorer jsp

我正在尝试通过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,但这对我来说听起来不太好,因为我在多台机器上遇到了这个问题。

欢迎任何帮助。

感谢。

2 个答案:

答案 0 :(得分:4)

如果服务器发送“Cache-control:no-store”标头或,则会出现此问题 发送“Cache-control:no-cache”标题。

其中一个解决方案是将Cache-Control: private添加到响应标头。

此外,Microsoft支持的官方博客很少。检查这些链接,其中一个应该可以帮助您解决问题。

http://support.microsoft.com/kb/815313

http://support.microsoft.com/kb/323308

答案 1 :(得分:3)

谢谢Hardik。你的回答帮助我解决了我的问题。

我将我的代码修改为incldue follow,并在IE8和IE9中正常工作。

    response.setHeader("Cache-Control","private");
    response.setHeader("Pragma","private");