【发布时间】:2015-03-08 04:58:28
【问题描述】:
我编写了一个 IHttpHandler 来提取查询字符串参数,并使用它们来确定要发回的文件类型。在我调用的处理程序中:
private static void GetSegmentFile(HttpContext context)
{
byte[] file = GetFile();
context.Response.ContentyType = "application/octet-stream";
context.Response.BinaryWrite(file);
}
在浏览器端,我在尝试下载文件时会得到不同的结果(使用右键单击 > 保存在网页中的链接上,并将其 href 设置为文件的 URL)。使用 test.docx 这些是我的结果:
Chrome:文件具有原始文件名和文件扩展名
IE 11:文件重命名为 media,文件扩展名为 .zip。
我附上了一张图片来说明我的意思。
【问题讨论】:
-
我相信你的两个文件是不同的(浏览器和代码)。确保两条路径相同
-
您不能将资源管理器窗口缩小一点以用于您的屏幕截图吗? :P
-
右键点击什么?你怎么下载?顺便提一句。你不是缺少 Content-Disposition 标头吗?
-
@WiktorZychla 通过右键单击将其 href 设置为文件 URL 的
<a>元素 -
那你肯定缺
Content-Disposition : attachment; filename=foo.docx