【发布时间】:2016-01-17 01:38:15
【问题描述】:
我需要在 HTML 页面中的对象标记中显示文件。
我使用 C# MVC4 发送文件。在我的代码中,我设置了“Content-Type”和“Content-Disposition”标头。
当我将 Content-Type 设置为 Chrome 不知道的内容时,它会下载文件,而不管“Content-Disposition”标头如何。
HTML:
<div>
<object data="http://localhost/UncHelper?path=secrectPath\file.dwg"></object></div>
C#:
public override void ExecuteResult(ControllerContext context)
{
context.RequestContext.HttpContext.Response.AddHeader("Content-Type", _contentType);
context.RequestContext.HttpContext.Response.AddHeader("Content-Disposition", "inline; filename=\"" + _fileName + "\"");
context.HttpContext.Response.WriteFile(_uncPath);
context.HttpContext.Response.End();
}
当我尝试显示 pdf 文件 (_contentType = application/pdf) 时,一切正常。
但是当我尝试显示 .dwg (_contentType = application/dwg) 时,Chrome 会下载该文件。我怎样才能防止这种情况发生?
(我不想根据浏览器或类似的东西将 HTML 状态设置为 203。)
谢谢!
【问题讨论】:
-
好吧,您希望浏览器如何处理它不知道如何显示的文件?如果 .dwg 文件是 AutoCad 文件,我怀疑 Chrome 是否能理解它。因此,最合乎逻辑的操作是下载文件,以便可以用适当的程序打开。
-
感谢您的评论! FF 显示一条消息,指出“未找到插件”,这也是 Chrome 所需要的。
标签: c# google-chrome asp.net-mvc-4