2017-09-11 25 views
2

イメージを含むキャンバスから得られるBLOBオブジェクトがあります。このBLOBをobjectURLに変更します。イメージをローカルファイルシステムに保存するJavaScriptファイル

let myBlob = canvas.toBlob(function(blob) {...}, 'image/jpeg', 0.95); 
 
let myUrl = URL.createObjectURL(myBlob);

私は次のようにBLOBオブジェクトのURLを取得:ファイルが保存されている場所を取得するにはblob:file:///d324f-3fd4....

、私はDirectoryEntryオブジェクトのgetDirectoryメソッドを呼び出す前に、最初にファイルシステムを要求しよう。しかし、私は汎用File not found in the directoryエラーを取得します。

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 
 
webkitRequestFileSystem(window.TEMPORARY, 2048*2048, resolve, errorHandler); 
 
// doesn't resolve to any value

私は、Windows 10でAppDataフォルダ内のどこでも検索が、何の一時ファイルが見られませんでした。私の推測では、ブロブはブラウザメモリ内にのみ存在し、電子の一時的なルートフォルダには実際には保存されません。

答えて

2

URL.createObjectURLファイルをディスクに保存しないと、シンボリックリンクのみが作成されます。

メモリに保存されたBlob(あなたの場合のような)の場合、シンボリックリンクはメモリを指し示しており、シンボリックリンクを作成したセッションが生きている限り、メモリにファイルを保持します。

ファイル(ユーザーの入力から取得)の場合、シンボリックリンクはユーザーのディスクを直接指します。

あなたのケースでは、その場所はメモリにしか存在しないため、その場所にアクセスすることはできません。

さて、あなたは常にファイルシステム上のブロブを保存することができますが、私は電子忍者ではないので、私はあなたが他の人の回答をチェックしてみましょうよ:Save video blob to filesystem electron/node js

関連する問題