首页 文章

如何在不强制saveas对话框的情况下设置响应文件名

提问于
浏览
101

我在一些响应中返回一个流,设置适当的内容类型 Headers . 我正在寻找的行为是这样的:

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

  • 如果浏览器不知道如何呈现内容,则应显示saveas对话框,其中文件名应为响应中提供的文件名 .

如果我使用以下内容设置Content-Disposition标头的问题:

“attachment; filename =”myfile.txt“”

浏览器将始终显示“保存”对话框 .

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

我也尝试将Content-Disposition设置为内联,但结果是一样的 .

2 回答

  • 148

    我可以默认使用'm not sure if that' . 出于安全考虑,浏览器不会发送它可以处理的所有内容类型,而只会发送一些 Accept-Encoding ,这对您的方案没有太大帮助 .

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

  • 3

    正确的方法可能是:

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

相关问题