【问题标题】:IE8 on some pages the download file does not workIE8在某些页面上下载文件不起作用
【发布时间】:2013-04-03 16:45:06
【问题描述】:

我正在开发一个应用程序,允许用户下载具有常规内容(不大于几 Mb)的 excel 文件。

在 IE9 上,文件可以完美下载,但在 IE8 上,某些允许下载的页面无法正常工作。

会立即打开和关闭一个新页面,但不显示下载栏。

缓存控制头设置为私有。

我已禁用所有 IE8 添加的。

我已经将服务器的响应与允许保存文件的页面和不工作的页面进行了匹配,并且它们完全匹配(除了路径)

我不知道为什么在某些情况下文件可以完美下载,而在其他情况下却没有。

这是我用来下载文件的服务器端代码:

protected void GetExportedFile()
{
    string filename = Form("filename");

    if (string.IsNullOrEmpty(filename))
    {
        Logger.Instance.Write("GetExportedFile is missing the parameter filename");
        Response.Redirect("ErrorPage.aspx");
    }

    string filePath = Context.Server.MapPath("****/****/" + filename);

    Response.ClearHeaders();
    Response.ClearContent();
    SetContentType(ContentType.Excel);
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", filename));
    Response.WriteFile(filePath);

    Response.Flush();

    try
    {
        File.Delete(filePath);
    }
    catch (Exception ex)
    {
        Logger.Instance.Write(
            "GetExportedFile failed to delete the file '" + filePath + 
            "', Error: " + ex.ToString(), "Error");
    }

    try
    {
        Response.End();
    }
    catch (ThreadAbortException ex)
    {
        //Don't add anything here.
        //because if you write here in Response.Write,
        //that text also will be added to your text file.
    }
}

我不得不提一下,虽然我认为在 IE8 上无法运行的下载之前,我会进行一些 ajax 调用以获取通知,以便在 excel 生成完成时得到通知,而在可以工作的页面上我不要执行此程序。

我还想补充一点,我的应用程序位于应用程序防火墙 (F5) 之后,当停用后,所有下载都可以在 IE8 上运行,问题是我没有看到响应中的任何变化。

谢谢

【问题讨论】:

  • 您的文件名变量是否包含文件扩展名?
  • 是的,文件扩展名是 xlsx

标签: c# asp.net internet-explorer-8 download f5


【解决方案1】:

如果有人看到这篇文章,我已经找到了问题的原因。 IE8 有一个安全策略,不允许直接从脚本请求调用文件下载。

由于我已经对服务器调用了一系列 ajax 调用来查询文件创建状态,并且当文件准备好时发出下载调用,IE 已经取消了它。

要覆盖 IE8 策略,当文件创建完成后,我会在客户端弹出一个带有文件链接的窗口,当单击该链接时,文件已成功下载。

我希望有一天它对某人有所帮助......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2019-06-14
    • 2015-06-04
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多