我有以下几行
<a id="export" href="data:text/plain;base64,MDow" download="fname">Download</a>
我希望将文件保存为fname.txt
,但Chrome始终将其保存为download.txt
。在Firefox上测试过它,它给出了预期的行为fname.txt
。
This表示此行为是故意的,不会修复,所以我的问题是,有没有办法用正确的文件名下载它?
答案 0 :(得分:1)
这不仅仅是一个安全问题
伪规范说:
此外,可以为该属性指定一个值,以指定该文件 用户代理在将资源存储在文件中时要使用的名称 系统。 Content-Disposition HTTP可以覆盖此值 header的文件名参数。 [RFC6266]在跨源情况下, download属性必须与Content-Disposition结合使用 HTTP标头,特别是附件处置类型,到 避免用户被警告可能是邪恶的活动。 (这是 保护用户免于下载敏感的个人或 没有完全理解的机密信息。)
如果浏览器检测到与您的标题不符的标题,则不会使用您的定义。
您的格式化的base64文本不正确:
这应该有效。
<a id="export" href="data:text/plain;base64,MDow" download="fname.txt"> Download</a>
如果您需要扩展字符集而不是utf-8,请尝试不同的编码,使用iso-8859-1 insted
示例2
<a download="fname" href="data:image/jpeg;base64,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" >image code</a>
注意:下载属性中的“.txt”扩展名不是必需的,但这是一种很好的做法
Edit2:TEsted in 37.0.2058.2
FIDLE: http://jsfiddle.net/yL8UZ/