6

フォームでユーザーからの入力を受け取り、ユーザーのフォーム入力に基づいてファイルを生成する Javascript アプリケーションの作成を実験したかったのです。

その後、サーバーに触れることなく、ユーザーがファイルをダウンロードできるようになります。

JavaScript を使用してクライアント側でファイルを作成する方法と、クライアント側のどこにファイルを保存して、最初にサーバー上で作成せずにダウンロードできるようにしますか?

更新: グラハムが答えたように具体的に言うと、必ずしもファイル システム自体に触れることなくファイルを作成する方法を探していましたが、ユーザーがダウンロードできるファイル オブジェクト (Blob) を作成するだけでした。ありがとうグラハム!

4

1 に答える 1

17

ファイルシステムを使用せずにこれを行う 1 つの方法は、ブロブを作成することです。大量のデータ (あなたの場合はフォームから) があり、それをテキスト "ファイル" に保存したいとしましょう。実際には次のようにできます。

var formBlob = new Blob([someStringVariable], { type: 'text/plain' });

ここから、次のようにユーザーをリンクして、これを実際のファイルとしてダウンロードできます。

someLink.href = window.URL.createObjectURL(formBlob);

このデータを保持したい場合は、blob を base64 文字列としてシリアル化し、localStorage またはその他の永続的なタイプのストレージに保存できます。blob を base64 に変換することは、この回答の範囲を少し超えていますが、ここで適切な参照/ライブラリを見つけることができます: http://blog.danguer.com/2011/10/24/base64-binary-decoding-in-javascript/

于 2013-03-12T04:18:23.367 に答える