我有一个blob:blahblah
指向文件的blob url。我想将此 blob 后面的文件写入本地文件系统。writer.write()
文档说它接受一个文件对象(来自输入类型文件)和一个blob。但是尝试此操作时会引发类型不匹配错误
fileEntry.createWriter(function(writer) {
writer.write(blob); //blob is a var with the value set to the blob url
我知道问题是blob
没有被接受,但我想知道如何将 blob 存储到文件系统。我之前在脚本中从 input-type-file 创建了上述 blob,并将其值存储在 var 中。
编辑
好的,所以我认为我应该首先给出更多代码。
首先我创建一个blob url并将其存储在这样的var中
files[i]['blob'] = window.webkitURL.createObjectURL(files[i]);
files
来自输入类型文件 html 标记,并且 i 循环显示文件数。你知道演出。
然后变量通过多种媒介,首先通过 chrome 的消息将 api 传递到另一个页面,然后从该页面通过 api 传递给工作人员postMessage
,最后通过postMessage
再次返回父页面。
在最后一页上,我打算使用它通过像这样的文件系统 api 将 blob 的文件存储到本地文件系统。
//loop code
fileSystem.root.getFile(files[i]['name'], {create: true}, function(fileEntry) {
fileEntry.createWriter(function(writer) {
writer.write(files[i]['blob']);
});
});
//loop code
但是writer.write
投掷Uncaught Error: TYPE_MISMATCH_ERR: DOM File Exception 11
我相信这个错误是因为提供给的变量writer.write
是文本而不是来自类似createObjectUrl
(直接而不是在通过多个页面/范围之后)的 blob 对象,或者不是window.WebKitBlobBuilder
. 那么如何使用 blob 的 url 来存储文件呢?