【发布时间】: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
更新
这似乎是一个服务器配置问题,因为相同的代码在我的生产服务器中可以正常工作,但在我的开发服务器中却不行。 所以我的客户不会抱怨这个,无论如何我想在我的开发环境中修复它,一旦我有时间我会再调查一下,如果我找到解决方案,我会在这里发布。
【问题讨论】:
-
使用 Chrome 下载后,您是否验证过您的内容长度与内容的实际大小相符?
-
您是否尝试过在另一台机器上使用 IE?该问题可能是由浏览器的某些设置引起的。找了一篇关于以前版本的IE也有同样问题的文章:support.microsoft.com/en-us/kb/2549423
-
您能否提供一些有关如何以及何时调用响应代码的信息?它是对请求的 URL 的自动响应吗?是在按钮点击事件上吗?
-
您使用的是哪个版本的 IE??
标签: c# asp.net internet-explorer webforms