我有一个像blob:blahblah
这样的指向文件的blob url。我想将这个blob后面的文件写入本地文件系统。 writer.write()
文档说它接受一个文件对象(来自输入类型文件)和 blob。不过,试试这个FileWriter API:使用blob写入数据
fileEntry.createWriter(function(writer) {
writer.write(blob); //blob is a var with the value set to the blob url
我知道这个问题是blob
没有得到认可的时候,但我想知道我怎么能一个blob存储到文件系统,它抛出一个类型不匹配错误。我在输入类型文件的脚本中早先创建了这个blob,并将它的值存储在一个var中。
编辑
好了,所以我想我应该在第一时间给予更多的代码。
首先我创建一个blob的URL,并将其存储在一个VAR这样
files[i]['blob'] = window.webkitURL.createObjectURL(files[i]);
files
是从输入型文件,HTML标记,我被循环的文件的数量。你知道演出。
则变量经历了一些媒体的,先通过Chrome的消息通过postMessage
通过postMessage
再次通过API到另一个页面,然后从页面到工人,最后回到父页面。
我打算用它通过文件系统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
(直接而不是通过多个页面/范围之后)或不是window.WebKitBlobBuilder
之类的blob对象。那么一个blob的url如何被用来存储文件呢?
请浏览器,版本和错误文本。 – c69
文件API只适用于铬。版本是稳定的,错误并不重要,因为它是一个有效的错误,我正在寻找一种方法来正确地做到这一点。无论如何..'TYPE_MISMATCH_ERR' – Achshar
我没有在规范中看到这样的错误, - 因此无论规范是否过时,或者您做错了什么,或者在Chrome中存在错误。 http://dev.w3.org/2009/dap/file-system/file-writer.html – c69