130

我在一些响应中返回一个流,设置适当的content-type标头。我正在寻找的行为是这样的:

  • 如果浏览器能够呈现给定内容类型的内容,那么它应该在浏览器窗口中显示它。

  • 如果浏览器不知道如何呈现内容,那么它应该显示“另存为”对话框,其中文件名应该是响应中提供的文件名。

问题是,如果我将Content-Disposition标题设置为:

"附件;文件名="myfile.txt""

浏览器将始终显示“另存为”对话框。

如果我不设置Content-Disposition,则“另存为”对话框中使用的文件名是 URL 中在我的情况下不起作用的文件名。

我也试过设置Content-Dispositioninline但结果是一样的。

4

2 回答 2

183

正确的方法可能是:

Content-Disposition: inline; filename="myfile.txt"

于 2009-11-16T11:08:23.293 回答
2

我不确定默认情况下是否可行。由于安全问题,浏览器不会发送它们可以处理的所有内容类型,而只会发送一些Accept-Encoding,这对您的场景没有多大帮助。

也许您可以询问您的用户他们喜欢什么并将该信息存储在他们的个人资料中。

于 2009-11-16T11:00:49.687 回答