【问题标题】:PDF download fails showing message "Couldn't be downloaded" only in IE11PDF 下载失败,仅在 IE11 中显示消息“无法下载”
【发布时间】:2015-06-16 19:08:45
【问题描述】:

我将 ASP.NET 与 Web 表单一起使用,本来应该很简单的事情让我发疯了,有人问过类似的问题,但没有一个对我有帮助,IE 拒绝下载我的文件。

注意事项:

  • 我正在本地测试
  • 它适用于 Firefox 和 Chrome,但不适用于 IE11
  • IE 将文件名更改为页面名称(例如,它尝试保存 default_aspx 而不是 myfile.pdf)

这是我的代码:

Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "Application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(buffer);
Response.End();

这些是我从 IE 得到的标题:

关键值

响应 HTTP/1.1 200 OK

Cache-Control 私有

内容类型应用程序/PDF

服务器 Microsoft-IIS/7.5

Content-Disposition 附件;文件名=myfile.pdf

X-AspNet-版本 4.0.30319

X-Powered-By ASP.NET

2015 年 4 月 10 日星期五 22:44:40 GMT

内容长度 691892

更新

这似乎是一个服务器配置问题,因为相同的代码在我的生产服务器中可以正常工作,但在我的开发服务器中却不行。 所以我的客户不会抱怨这个,无论如何我想在我的开发环境中修复它,一旦我有时间我会再调查一下,如果我找到解决方案,我会在这里发布。

【问题讨论】:

标签: c# asp.net internet-explorer webforms


【解决方案1】:

我在自己的应用程序中做了类似的事情。尝试删除content-disposition 标头并将Application/pdf 更改为application/pdf。您也可能不需要Response.End(),尽管我怀疑这是导致问题的原因。

【讨论】:

  • 如果问题不清楚,请不要回答。 OP 需要 content-disposition 标头,并且 Content-Type 标头的值不区分大小写。改为使用 cmets 要求澄清。
【解决方案2】:

这不是确切的答案,但希望它可以打开一些方法来找到确切的答案。

在谷歌搜索时,我发现这可能是由于 Microsoft 为 IE 发布了安全更新。

微软发布了一个安全 2014 年 7 月 8 日的 IE11 更新,存在影响下载的错误。

这里是Microsoft Connect Link,在活动状态下提到了这一点。

找到后请分享确切的解决方案。

干杯!!

【讨论】:

    【解决方案3】:

    我们在 ie8 中遇到过类似的问题,问题是在缓存中搜索该文件,但没有找到。要对此进行测试,请在响应对象中设置 Cache-Control : no-cache。

    【讨论】:

      【解决方案4】:

      我过去也遇到过类似的问题,我会尝试明确设置响应内容长度。

      Response.AddHeader("Content-Length", buffer.Length.ToString())
      

      【讨论】:

        猜你喜欢
        • 2011-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-05
        • 1970-01-01
        相关资源
        最近更新 更多