Asp.net MVC FileContentResult - 阻止在浏览器中打开

2024-03-09

我的控制器操作之一将文件返回给用户。我希望向用户显示下载(打开/保存)对话框,无论文件类型如何。当文件类型为 .doc、.docx、.xlsx 等时,此方法工作正常,但当文件为 .txt、.xps、.pdf(有时)或 .html 时,它会在浏览器中打开。

有没有办法阻止文件在浏览器中打开,并且只允许用户在单独的窗口中打开它,而无需离开当前页面?

使用 jQuery 发出文件请求$.ajax({}).

相关:让浏览器处理请求并给出弹出窗口,而不是 AJAX 调用接收文件内容作为响应字符串,解释如下这个答案 https://stackoverflow.com/questions/2240869/asp-net-mvc-controller-filecontent-actionresult-called-via-ajax/2247061#2247061,但这个问题解决了强制浏览器在收到文件后以某种方式处理文件。


我认为您无法通过客户端命令或设置来做到这一点。您需要在服务器上执行某些操作,以便它返回以下内容类型application/octet-stream对于每个文件。否则,浏览器将查看传入的文件,并根据自己的规则和功能决定如何处理它。

如果您可以在服务器上执行此操作,请尝试设置"Content-Disposition"标头至"attachment; filename=whatever.xyz"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.net MVC FileContentResult - 阻止在浏览器中打开 的相关文章