4

我正在尝试通过 java 代码创建一个 xls 文件并允许用户下载它。下载代码在 JSP 中,在 IE9 和其他浏览器中运行良好。但它在 IE 8 中给出错误 “无法下载文件。无法打开此 Internet 站点。请求的站点不可用或找不到。请稍后再试。”

我的 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,但这对我来说并不好,因为我在多台机器上都遇到了这个问题。

欢迎任何帮助。

谢谢。

4

2 回答 2

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

于 2013-04-19T07:14:24.890 回答
3

谢谢哈迪克。你的回答帮助我解决了我的问题。

我修改了我的代码,使其在 IE8 和 IE9 中运行良好。

    response.setHeader("Cache-Control","private");
    response.setHeader("Pragma","private");
于 2013-04-22T11:33:02.100 回答