我读过这篇好文章 http://www.html5rocks.com/en/tutorials/file/xhr2/
它使用HTML5 FileSystem API和FileWriter实现将Blob写入本地文件。
但是,我的浏览器Safari(目前为7.0.5)不支持requestFileSystem
和FileWriter
。 (我已经使用Chrome进行了测试。它也不支持。)
我也在线搜索,但似乎没有“正式答案”。
另一个问题是为什么将本地文件读取到浏览器很简单(使用FileReader
),但写入本地文件似乎不对称,尤其是在新的html5标准中。
答案 0 :(得分:2)
在webkit(Chrome和Safari)中,您实际上可以通过供应商前缀使用FileSystem api:
window.webkitRequestFileSystem
无论如何FileWriter
并未直接暴露给JavaScript。
对于不支持的浏览器(很多):https://github.com/eligrey/FileSaver.js会有所帮助。
您是否考虑过以旧式方式强制下载(更兼容)?读取Blob
作为数据URI,然后将URI的内容类型更改为强制下载的值。缺点:没有指定文件名和繁琐。
var reader = new FileReader;
reader.onload = function() {
window.open(this.result.replace(/data:.+?\/[^;]+/, "data:application/octet-stream"));
};
reader.readAsDataURL(my_blob);