PDF 下载失败,仅在 IE11 中显示消息 "Couldn't be downloaded"
PDF download fails showing message "Couldn't be downloaded" only in IE11
我将 ASP.NET 与 Web 表单一起使用,一些应该非常简单的事情让我发疯,类似的问题已经被问到,但其中 none 帮助了我,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 得到的 headers:
键值
响应HTTP/1.1 200 OK
Cache-Control私人
Content-Type Application/PDF
服务器Microsoft-IIS/7.5
Content-Disposition附件;文件名=myfile.pdf
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
日期 2015 年 4 月 10 日,星期五 22:44:40 GMT
Content-Length691892
更新
这似乎是一个服务器配置问题,因为相同的代码在我的生产服务器上可以正常工作,但在我的开发服务器上却不行。
所以我的客户不会抱怨这个,无论如何我想在我的开发环境中修复它,一旦我有时间我会调查更多,如果我找到解决方案我会 post 在这里.
我在自己的应用程序中做了类似的事情。尝试删除 content-disposition
header 并将 Application/pdf
更改为 application/pdf
。您也可能不需要 Response.End()
,但我怀疑这是导致问题的原因。
这不是确切的答案,但希望它能打开一些找到确切答案的方法。
在谷歌搜索时我发现这可能是由于 Microsoft 为 IE 发布了安全更新。
Microsoft released a security
update for IE11 on 8 Jul 14 which has a bug affecting the download.
这是 Microsoft Connect Link 在 活动 状态下提到的。
找到后请分享确切的解决方案。
干杯!!
我们在 ie8 中遇到了类似的问题,问题是在缓存中搜索文件,但没有找到。要对此进行测试,请在您的响应对象中设置 Cache-Control : no-cache。
我以前遇到过类似的问题,我会尝试明确设置响应内容长度。
Response.AddHeader("Content-Length", buffer.Length.ToString())
我将 ASP.NET 与 Web 表单一起使用,一些应该非常简单的事情让我发疯,类似的问题已经被问到,但其中 none 帮助了我,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 得到的 headers:
键值
响应HTTP/1.1 200 OK
Cache-Control私人
Content-Type Application/PDF
服务器Microsoft-IIS/7.5
Content-Disposition附件;文件名=myfile.pdf
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
日期 2015 年 4 月 10 日,星期五 22:44:40 GMT
Content-Length691892
更新
这似乎是一个服务器配置问题,因为相同的代码在我的生产服务器上可以正常工作,但在我的开发服务器上却不行。 所以我的客户不会抱怨这个,无论如何我想在我的开发环境中修复它,一旦我有时间我会调查更多,如果我找到解决方案我会 post 在这里.
我在自己的应用程序中做了类似的事情。尝试删除 content-disposition
header 并将 Application/pdf
更改为 application/pdf
。您也可能不需要 Response.End()
,但我怀疑这是导致问题的原因。
这不是确切的答案,但希望它能打开一些找到确切答案的方法。
在谷歌搜索时我发现这可能是由于 Microsoft 为 IE 发布了安全更新。
Microsoft released a security update for IE11 on 8 Jul 14 which has a bug affecting the download.
这是 Microsoft Connect Link 在 活动 状态下提到的。
找到后请分享确切的解决方案。
干杯!!
我们在 ie8 中遇到了类似的问题,问题是在缓存中搜索文件,但没有找到。要对此进行测试,请在您的响应对象中设置 Cache-Control : no-cache。
我以前遇到过类似的问题,我会尝试明确设置响应内容长度。
Response.AddHeader("Content-Length", buffer.Length.ToString())