首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止Chrome下载文件

阻止Chrome下载文件
EN

Stack Overflow用户
提问于 2015-10-19 03:05:04
回答 1查看 899关注 0票数 0

我需要在一个对象标签中显示HTML页面中的文件。

我使用C# MVC4发送文件。在我的代码中,我设置了"Content-Type“和"Content-Disposition”头。

当我将Content-Type设置为Chrome不知道的内容时,它会下载文件,而不管"Content-Disposition“头。

HTML:

代码语言:javascript
复制
<div>
<object data="http://localhost/UncHelper?path=secrectPath\file.dwg"></object></div>

C#:

代码语言:javascript
复制
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。)

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-10-19 03:17:35

这是不可能的,我认为这也是你方的一个小小的误解。要使浏览器能够显示文件,首先必须下载该文件。这适用于所有文件类型。例如,如果在disposition设置为inline的情况下显示image/jpeg的图像,浏览器仍会下载该图像,然后以内联方式显示该图像,而不是询问用户要将其保存到何处。如果浏览器不知道如何显示文件,这将不是一个选项,并且将默认为唯一的另一个选项,即询问用户将其保存到何处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33202017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档