我知道这个问题有几个版本,但我已经尝试了尽可能多的建议,但它似乎不起作用。大多数建议设置Content-Disposition头项。从JS前端,我使用
Content-Disposition: attachment; filename=*"Dbase%20%20%20Emails%20-%20Copy.xlsx";
filename="Dbase%20%20%20Emails%20-%20Copy.xlsx"
<or>
Content-Disposition: attachment; filename=*UTF-8''Dbase%20%20%20Emails%20-%20Copy.xlsx
<or>
encodeURI("Dbase Emails - Copy.xlsx")
<or>
filename="Dbase Emails - Copy.xlsx"
或者我试着在响应头上设置它,一个golang后端,几乎相同的形式,但Firefox继续忽略头中传递的任何内容,你可以在devtools的“文件”下看到一个解码:“Dbase电子邮件- Copy.xlsx”,在响应头中,您可以正确地看到:
attachment; filename=*"Dbase%20%20%20Emails%20-%20Copy.xlsx";
filename="Dbase%20%20%20Emails%20-%20Copy.xlsx"
这似乎是正确的,我可以做些什么,使Firefox下载它作为正确的名称?
谢谢-凯文
我已经尝试了所有我可以尝试从以前的问题,如:
How to encode the filename parameter of Content-Disposition header in HTTP?
1条答案
按热度按时间6yt4nkrj1#
对于当前的Firefox(版本
111.0.1
),破解Content-Disposition
头文件根本没有帮助。因为Firefox会清理文件名并压缩空白。我不知道你为什么要保留空白,但请注意,
filename
参数提供了大多数指示性信息,所有浏览器都会清理文件名。例如,Linux上的Chrome会将文件名中的/
替换为_
。filename=*UTF-8
应该是filename*=UTF-8
。参考文献:
1.调用
DownloadPaths.sanitize
的Firefox源代码:https://hg.mozilla.org/mozilla-central/file/bce007ba1a3fdb155321a15a3430395dddbccb4a/toolkit/mozapps/downloads/HelperAppDlg.jsm#l428注意:源代码不是针对当前版本的。但是行为是相同的。
1.关于压缩空白的一些讨论:https://bugzilla.mozilla.org/show_bug.cgi?id=1637973
Content-Disposition
头文件:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition