1

jsonを使ってバイナリファイルをアップロードしたいです。ファイルとともに追加情報も送信したいので、Json を選択します。

私はこれをするつもりです -

  1. ファイル入力タグでファイルを選択します。
  2. HTML5 ファイル リーダー API を使用して、最初にファイルを読み取ります。
  3. ファイルの内容を base64 に変換します。
  4. base64 コンテンツをデータ uri 形式で JS オブジェクトに追加します。
  5. JS オブジェクトを json に変換し、サーバーにポストします。

これが私の目標を達成するための唯一の正当な方法なのだろうか? また、この機能を提供するプラグインがどこかで既に利用可能な場合は?

4

1 に答える 1

0

いいえ、これが唯一の方法ではありません。他の方法の 1 つは、ファイルを含むフォームを送信することです。このようなフォームはmultipart/form-dataコンテンツ タイプを使用します。

この件に関する W3C ドキュメントを参照してください。

コンテンツ タイプ " application/x-www-form-urlencoded" は、非 ASCII 文字を含む大量のバイナリ データまたはテキストを送信するには非効率的です。

multipart/form-dataファイル、非 ASCII データ、およびバイナリ データを含むフォームを送信するには、コンテンツ タイプ " " を使用する必要があります。

そのため、一からやり直す必要はありません。ブラウザは、簡単な方法で追加情報とともにファイルを送信することを既にサポートしています。ユーザーがデータを入力してファイルを選択できるフォームを作成するだけで、それらはすべてmultipart/form-dataコンテンツ タイプとともにサーバーに送信されます。Web フレームワークは、ファイルとテキスト データの両方を処理することを理解できるはずです。

于 2012-12-28T09:15:39.740 に答える