39

HTML5 でローカルにデータを保存するクロス ブラウザーの方法を見つけようとしています。Blob にデータのチャンクを生成しました ( MDN を参照)。次に、この Blob を実際のファイル システムに移動し、ローカルに保存します。これを達成するために次の方法を見つけました。

  • 属性を使用し<a download>ます。これは現在 Chrome でのみ機能します。
  • Microsoft は、saveAsこれを実現する IE 10 の機能を導入しています。
  • ブラウザーで Blob URL を開き、そのまま保存します。

ただし、これらはいずれも Safari では機能しないようです。(1) Chrome、(2) IE、(3) Firefox では動作しますが、Safari 6 では誰も動作しません。ダウンロード属性はまだ実装されておらず、URL を使用して BLOB を開こうとすると、Safari は URLblob:がで始まると不平を言います。有効な URL ではありません。

(1) と (3) をカプセル化したFileSaver.jsという優れたスクリプトがありますが、最新の Safari バージョンでは機能しません。

クロス ブラウザー方式で Blob をローカルに保存する方法はありますか?

4

6 に答える 6

22

FileSaver.js は最近更新され、IE10、Safari5+ などで動作します。

参照: https://github.com/eligrey/FileSaver.js/#supported-browsers

于 2013-02-13T16:34:32.827 に答える
4

私が思いついた唯一の解決策は、代わりに data: url を作成することです。私にとって、これは次のようになります。

window.open("data:image/svg+xml," + encodeURIComponent(currentSVGString));
于 2013-02-07T06:36:08.990 に答える
2

この記事を読みましたか?http://updates.html5rocks.com/2012/06/Don-t-Build-Blobs-Construct-Them

http://caniuse.com/#search=blobに関連して、ブロブはサファリで使用できます。

blob: url の使用を避けることができるように、標準の http:// url を介して blob を配信するサーブレットを構築する必要があります。その URL にリクエストを送信して、ブロブを作成するだけです。

その後、ファイルシステムまたはローカル ストレージに保存できます。

于 2013-02-12T16:01:12.867 に答える