5

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

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

对文件的请求是使用 jQuery 的$.ajax({}).

相关:这个ansewr 解释了让浏览器处理请求并给出弹出窗口,而不是接收文件内容作为响应字符串的 AJAX 调用,但是这个问题解决了强制浏览器以某种方式处理文件一次收到了。

4

1 回答 1

5

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

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

于 2011-10-05T13:59:53.253 回答