我在一些响应中返回一个流,设置适当的内容类型标头。我正在寻找的行为是:
如果浏览器能够呈现给定内容类型的内容,那么它应该在浏览器窗口中显示。
如果浏览器不知道如何呈现内容,那么它应该显示saveas对话框,其中文件名应该是响应中提供的文件名。
如果我将Content-Disposition标头设置为:
的问题“attachment; filename =”myfile.txt“”
浏览器将始终显示“保存”对话框。
如果我没有设置Content-Disposition,则saveas对话框中使用的文件名是url中的文件名,在我的情况下不起作用。
我也尝试将Content-Disposition设置为内联,但结果是一样的。
答案 0 :(得分:155)
正确的方法可能是:
Content-Disposition: inline; filename="myfile.txt"
答案 1 :(得分:3)
我不确定默认情况下是否可行。出于安全考虑,浏览器不会发送它可以处理的所有内容类型,只会发送一些Accept-Encoding
,这对您的方案没有太大帮助。
也许您可以向用户询问他/她喜欢什么,并将这些信息存储在他们的个人资料中。