blob:blahblah
ファイルを指すようなブロブURLがあります。このブロブの背後にあるファイルをローカル ファイル システムに書き込みたいと考えています。writer.write()
ドキュメントには、(input-type-file からの) ファイル オブジェクトとblobを受け入れると記載されています。しかし、これを試すと型の不一致エラーがスローされます
fileEntry.createWriter(function(writer) {
writer.write(blob); //blob is a var with the value set to the blob url
blob
が受け入れられないことが問題であることはわかっていますが、ブロブをファイルシステムに保存する方法を知りたいです。スクリプトの前半で、input-type-file から前述の BLOB を作成し、その値を var に保存しました。
編集
わかりましたので、最初にもっとコードを与えるべきだったと思います。
まず、ブロブ URL を作成し、このように var に保存します
files[i]['blob'] = window.webkitURL.createObjectURL(files[i]);
files
input-type-file html タグからのもので、i はファイル数だけループされます。あなたはギグを知っています。
次に、変数はいくつかの媒体を通過します。最初にchromeのメッセージパッシング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
ようなものからの blob オブジェクトではないか、 . では、ブロブの URL を使用してファイルを保存するにはどうすればよいでしょうか。createObjectUrl
window.WebKitBlobBuilder