阻止Chrome下载文件

时间:2015-10-18 19:05:04

标签: c# google-chrome asp.net-mvc-4

我需要在对象标签的HTML页面中显示文件 我使用C#MVC4发送文件。在我的代码中,我设置了" Content-Type"和"内容 - 处置"头。
当我将内容类型设置为Chrome不知道的内容时,它将下载该文件,而不管内容处理"报头中。

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会下载该文件。我怎么能阻止这个?

(我不想根据浏览器或其他任何内容设置203的HTML状态。)

谢谢!

1 个答案:

答案 0 :(得分:0)

这是不可能的,我认为这也是你的一个小误会。要使浏览器能够显示文件,首先必须下载它。这适用于所有文件类型。例如,如果您正在显示image/jpeg的图像,并且处置设置为inline,则浏览器仍会下载图像,然后将其显示为内联,而不是询问用户他/她将在哪里喜欢保存它。如果浏览器不知道如何显示文件,则这不是一个选项,并且默认为唯一的其他选项,即询问用户将其保存在何处。