HTML5 引入了 FileWriter 类。通过这个类,您可以制作 Blob。(文件是 Blob 的扩展。)使用 JavaScript,您可以创建 Blob,例如使用 dataURL 显示它。
例子:
var bb = new BlobBuilder();
bb.append('some text')
var blob = bb.getBlob('text/plain');
var fr = new FileReader();
fr.onload = function(e) {
document.location = this.result; // voila the dataURL
}
fr.readAsDataURL(blob);
但这还不够好:) 我希望下载新创建的(文本)文件。不在同一个或单独的窗口中打开。
有办法吗?必须有。如何?
(讨论已经在谷歌浏览器群里了)
更新
文件 API 已更改,因为规范已更改(或其他内容!?)。Webkit 打破了向后兼容BlobBuilder
,现在称为WebKitBlobBuilder
. jsFiddle上的相同示例不同
更新
创建 Blob 现在再次以不同的方式工作(不再append()
):
blob = new Blob(['some text'], {type: 'text/plain'});