ファイルアップロード
React Routerアプリケーションでファイルアップロードを処理します。このガイドでは、ファイルアップロードを容易にするために、Remix The Webプロジェクトのいくつかのパッケージを使用します。
このドキュメントは、David Adamsによるオリジナルガイドを基に作成されています。より多くの例については、そちらを参照してください。
基本的なファイルアップロード
1. ルートの設定
ルートは自由に設定できます。この例では、次の構造を使用します。
2. フォームデータパーサーの追加
form-data-parser
は、ファイルアップロードのストリーミングサポートを提供するrequest.formData()
のラッパーです。
詳しくはform-data-parser
のドキュメントを参照してください
3. アップロードアクションを持つルートの作成
parseFormData
関数は、uploadHandler
関数を引数として受け取ります。この関数は、フォーム内の各ファイルアップロードに対して呼び出されます。
ファイルアップロードを機能させるには、フォームのenctype
をmultipart/form-data
に設定する必要があります。
ローカルストレージの実装
1. ストレージパッケージの追加
file-storage
は、JavaScriptでFileオブジェクトを格納するためのキー/値インターフェースです。localStorage
がブラウザに文字列のキー/値ペアを格納することを可能にするのと同様に、file-storage
はサーバーにファイルのキー/値ペアを格納することを可能にします。
詳しくはfile-storage
のドキュメントを参照してください
2. ストレージ設定の作成
さまざまなルートで使用されるLocalFileStorage
インスタンスをエクスポートするファイルを作成します。
3. アップロードハンドラの実装
fileStorage
インスタンスにファイルを格納するようにフォームのaction
を更新します。
4. アップロードされたファイルを配信するルートの追加
ファイルをレスポンスとしてストリーミングするリソースルートを作成します。