如何设置响应文件名而不强制saveas对话框

我正在返回一个stream,在一些响应设置适当的内容types标题。 我正在寻找的行为是这样的:

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

  • 如果浏览器不知道如何渲染内容,那么它应该显示saveas对话框,其中的文件名应该是响应中提供的文件名。

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

“attachment; filename =”myfile.txt“”

浏览器将始终显示savingas对话框。

如果我不设置Content-Disposition,那么在saveas对话框中使用的文件名是在我的情况下不起作用的url。

我也尝试设置内联处置内联,但结果是一样的。

正确的方法可能是:

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

我不确定这是可能的默认情况下。 出于安全考虑,浏览器不会发送它可以处理的所有内容types,而只是一些Accept-Encoding ,这在你的场景中帮助不大。

也许你可以问你的用户他/她喜欢什么,并将这些信息存储在他们的个人资料中。