如何让主流浏览器接受带前置点的保存文件名?
如何让主流浏览器接受带前置点的Content-Disposition文件名?
我想让浏览器弹出“另存为”窗口时,建议文件名为.gitconfig。最直接的做法是设置如下响应头:
Content-Disposition: attachment; filename=".gitconfig" Content-Type: application/octet-stream
(使用octet-stream是因为Firefox和Chrome会为text/plain自动添加.txt后缀)
但这个方法无效:Firefox和Chrome都会移除前置点,建议文件名为gitconfig(RFC6266第4.3节提到接收方需注意点号,但此处并不适用)。
我尝试用\进行转义,但在两款浏览器中均被忽略,而\\.会被转换为_.。两款浏览器都不接受未加引号的文件名,此时会建议文件名为‘unknown’。
查看Chromium源码后发现其支持RFC2047编码(Firefox同样支持),因此我尝试了以下设置:
Content-Disposition: attachment; filename==?iso-8859-1?Q?.gitconfig?=
以及百分编码:
Content-Disposition: attachment; filename=%2Egitconfig
但无论是否给文件名加引号,这些方法均无效。
内容的提问来源于stack exchange,提问作者EML
相关产品推荐
相关产品推荐

