3

ユーザーがテキストエリアの現在のコンテンツを自分のコンピューターのテキストファイルにダウンロードできるようにしたい。以前は、データを含むURLを指すiframeを作成しました。これにより、ファイルのダウンロードダイアログがトリガーされました。ただし、今回のデータはクライアント側です。

では、サーバー側に送信せずにユーザーにデータをダウンロードさせることは可能ですか?

4

3 に答える 3

6

IEのような「古いブラウザ」で動作する必要がない場合は、場所を指定して新しいウィンドウを開くことができます'data:text/plain,' + yourTextarea.valueCtrlその後、ユーザーは[ファイル/ページ]メニューまたは+を使用してそのファイルを保存できますS

于 2010-04-12T12:38:32.477 に答える
5

サーバー側に送信せずにユーザーにデータをダウンロードさせることは可能ですか?

一般的な場合はありません。

data:janmoesenの回答のようにURLで可能です(ただし、URLに含める値をURLエンコードする必要があります。そうしないと%nn、データにシーケンスが表示されたときに破損する可能性があります)。

ただし、これは非常に長いデータでは実用的ではなく、古いブラウザやIEでは使用できません。(IE8では短いデータURLを画像に使用できますが、直接ナビゲーションはできません。)したがって、データURLメソッドを含めて、それをサポートするブラウザーでのプロセスを強化することはできますが、それでも、データをサーバー側に送信し、それに応じてファイルを吐き戻します。

(セキュリティ上の理由から、これはPOSTリクエストでのみ許可する必要があり、サーバーはレスポンスに含める必要がありますContent-Disposition: attachment。コンテンツエコースクリプトを使用すると、クロスサイトスクリプティングの問題が発生する可能性があります。)

于 2010-04-12T12:47:46.930 に答える
0

File動作とBlobタイプを確認してください。

プログラムで作成してダウンロードをトリガーできます。

https://www.bennadel.com/blog/3472-downloading-text-using-blobs-url-createobjecturl-and-the-anchor-download-attribute-in-javascript.htm

https://blog.logrocket.com/programmatic-file-downloads-in-the-browser-9a5186298d5c/

于 2020-07-03T11:54:03.377 に答える