データURLファイルをダウンロードする 質問する

データURLファイルをダウンロードする 質問する

私は、ブラウザから誰でもアクセスできる、完全に JavaScript ベースの zip/unzip ユーティリティを作成するというアイデアを考えています。zip ファイルをブラウザに直接ドラッグするだけで、その中のすべてのファイルをダウンロードできます。また、個々のファイルをドラッグして新しい zip ファイルを作成することもできます。

サーバー側で行う方が良いことは分かっていますが、このプロジェクトは単なる楽しみのためです。

利用可能なさまざまな方法を活用すれば、ファイルをブラウザにドラッグするのは簡単です。(Gmail スタイル)

エンコード/デコードはおそらく問題なくできるはずです。as3 zip ライブラリをいくつか見たことがあるので、これで問題ないはずです。

私の問題は、最後にファイルをダウンロードすることです。

window.location = 'data:jpg/image;base64,/9j/4AAQSkZJR....' 

これは Firefox では正常に動作しますが、Chrome では動作しません。

を使用して Chrome でファイルを画像として埋め込むことはできます<img src="data:jpg/image;ba.." />が、ファイルは必ずしも画像である必要はありません。任意の形式にすることができます。

別の解決策や何らかの回避策を思いつく人はいますか?

ベストアンサー1

ファイルに(デフォルトの「download」の代わりに)推奨名を付けたい場合は、Chrome、Firefox、および一部の IE バージョンで以下を使用できます。

function downloadURI(uri, name) {
  var link = document.createElement("a");
  link.download = name;
  link.href = uri;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  delete link;
}

次の例はその使用方法を示しています。

downloadURI("data:text/html,HelloWorld!", "helloWorld.txt");

おすすめ記事