强制下载“data:text/plain”网址
我想知道是否可以强制浏览器(至少是 Chrome)下载 data:text/plain
URL。
Chrome 会下载二进制 URL(例如 data:application/zip;base64,...
),但不会下载可在浏览器内部查看的文件(例如文本文件)。
到目前为止,我已经尝试过但没有运气的是:
data:text/plain;content-disposition=attachment;filename=test.txt;...
但似乎我无法添加这样的标题。
有没有办法让 Chrome 下载 data:text/plain,...
URL?
I was wondering whether it is possible to force a browser (at least Chrome) to download a data:text/plain
URL.
Chrome does download binary URLs (e.g. data:application/zip;base64,...
), but it does not download files that can be viewed inside the browser (such as text files).
What I already tried with no luck so far is this:
data:text/plain;content-disposition=attachment;filename=test.txt;...
But it seems like I cannot add headers like this.
Is there any way to make Chrome download a data:text/plain,...
URL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
到目前为止,已经可以在 Chrome 中使用
。使用
dispatchEvent
,您可以随时将任何字符串下载为文件(即使使用自定义文件名)。下面是一个使用它的实用函数:用法:
它使用 jQuery 和
webkit
前缀,但两者都可以避免。As of now, it has been made possible to use
<a download>
in Chrome. UsingdispatchEvent
, you can download any string as file (even with a custom filename) whenever you want. Here's a utility function to use it:Usage:
It uses jQuery and the
webkit
prefix, but both can be avoided.试试这个:
它使用 HTML5 属性
download="filename.ext"
。 (不需要 JS:)更多关于:
http://www.w3.org/TR/html/links.html #downloading-resources
可以在 http://caniuse.com/download 检查浏览器支持
(如目前,2013年,没有IE 或 Safari 支持)
我认为,您可以对不支持的浏览器进行后备:使用 JS 将
href="..."
的值更改为服务器脚本的 URL(这将返回具有适当 HTTP 标头的文件内容Content-disposition:attachment;filename=filename.txt
)。Try this:
It uses HTML5 attribute
download="filename.ext"
. (no JS needed:)More about:
http://www.w3.org/TR/html/links.html#downloading-resources
Browser support can be checked at http://caniuse.com/download
(As for now, 2013, no IE nor Safari support)
I think, you can make a fallback for not-supporting browsers: use JS to change value of
href="..."
to the URL of your server script (which will return the file contents with appropriate HTTP headerContent-disposition: attachment;filename=filename.txt
).这是一个纯 Javascript 解决方案,用于创建文本 blob 并下载为文本文件
Here is a pure Javascript solution for creating a text blob and download as text file
我所做的是将数据发送到服务器,服务器将它们发送回以下 HTTP 标头:
我不喜欢这样,但它工作得相当好。
What I did was sending the data to a server, which sends them back with the following HTTP header:
I don't like this, but it works rather well.
这工作得像地狱一样......
This works as hell ...