2017-10-27 9 views
0

Reactコンポーネントとして入力ファイルがあります。これは複数ページのフォームの一部です。したがって、フォームのテキストフィールドでは、最後にすべてのデータを最後までアップロードできるように、データをReduxに格納します。Reduxで選択した入力ファイルを保存して後でアップロードする

これは、テキストフィールドで正常に動作します。しかし、ファイルを取り込む入力に対しては、これがどのように機能するかわかりません。

最後に選択したファイルを最後にデータの一部としてアップロードできるように、Reduxで選択したファイルを保存するにはどうすればよいですか?

答えて

1

ファイルを他のテキストフィールドと同じ方法で保存することができます。 The value attribute of a input of type file contains the path of the file saved as string.この値は、文字列フィールドとしてReduxストアに保存できます。

最後にform入力を処理すると、この値を使用してファイルをロードしてサーバーに送信できます。 MDN

HTMLフォームでファイルを送信することは特別な場合です。ファイルはバイナリデータであるか、またはそれとみなされますが、他のすべてのデータはテキストデータです。 HTTPはテキストプロトコルなので、バイナリデータを処理するための特別な要件があります。

この属性は、あなたが フォームが送信されたときに生成された要求に含ま Content-Type HTTPヘッダーの値を指定することができますenctype属性。このヘッダーは、送信されるデータの種類をサーバー に伝えるため、非常に重要です。デフォルトでは、値は application/x-www-form-urlencodedです。人間の言葉で言えば、これは、「この は、URLパラメータにエンコードされたフォームデータです。

あなたがファイルを送信したい場合は、次の3つの余分な手順取る必要があります。

  1. をファイルの内容は、URLパラメータ内に置くことができないので、POSTからmethod属性を設定します。データを複数の部分に分割されるため、
  2. enctype multipart/form-dataの値を設定し、それぞれのファイル に対して1つのプラスのテキストデータのための1つは、(テキストでもある場合 、フォームに入力された)形態の本体に含まれます。

  3. File pickerウィジェットから までの1つ以上のウィジェットを含めて、アップロードするファイルを選択することができます。

関連する問題