我需要在一个对象标签中显示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 =应用程序/pdf)时,一切正常。
但是当我试图显示一个应用程序(_contentType = .dwg /dwg)时,Chrome会下载该文件。我如何防止这种情况发生?
(我不想根据浏览器或类似的设置将HTML状态设置为203。)
谢谢!
发布于 2015-10-19 03:17:35
这是不可能的,我认为这也是你方的一个小小的误解。要使浏览器能够显示文件,首先必须下载该文件。这适用于所有文件类型。例如,如果在disposition设置为inline的情况下显示image/jpeg的图像,浏览器仍会下载该图像,然后以内联方式显示该图像,而不是询问用户要将其保存到何处。如果浏览器不知道如何显示文件,这将不是一个选项,并且将默认为唯一的另一个选项,即询问用户将其保存到何处。
https://stackoverflow.com/questions/33202017
复制相似问题