ファイルアップロード
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. アップロードハンドラーを実装する
フォームの action
を更新して、ファイルを fileStorage
インスタンスに保存します。
4. アップロードされたファイルを提供するルートを追加する
ファイルをレスポンスとしてストリーミングする リソースルート を作成します。