私は、ブラウザから誰でもアクセスできる、完全に 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");