MVC4(.net 4.5)でファイルをサーバーにアップロードしてメモリに保存できるかどうか疑問に思っています。それから別のフォーム投稿で、そのファイルを収集し、その時点で処理します。
ページの一部にファイルをアップロードし、別の部分にフォームの詳細を送信できるようにする必要がありますが、アップロードしたばかりのファイルにアクセスできるようにする必要があります。論理的な理由から、メイン フォームに同時にファイルを投稿することはできません。それらは分離する必要があります。
MVC4(.net 4.5)でファイルをサーバーにアップロードしてメモリに保存できるかどうか疑問に思っています。それから別のフォーム投稿で、そのファイルを収集し、その時点で処理します。
ページの一部にファイルをアップロードし、別の部分にフォームの詳細を送信できるようにする必要がありますが、アップロードしたばかりのファイルにアクセスできるようにする必要があります。論理的な理由から、メイン フォームに同時にファイルを投稿することはできません。それらは分離する必要があります。
ファイルをメモリセッションに保存することもできますが、これにはいくつかのリスクがあります。
これらが問題にならない場合は、ファイルをセッションに保存してください。
Session["UploadedFile"] = someByteArray;
これらが懸念される場合は、次のことをお勧めします。
他の答えには素晴らしい説明があります。何かを追加したかっただけです。
最初のページで、ファイルを HD に保存しますが、ファイル名/ID もデータベースに保存します。これで、現在アップロードされているファイル名を指す ID が得られました。この ID は、type="hidden" 入力またはセッション変数を介してページ間で転送できます。
データベースがない場合は、ファイル名が ID になる可能性があります。例: GUID を生成し、ファイル名をこの GUID と共に保存します。例: [guid].xls
保存したファイル (またはバイナリ自体) へのパスと共に 2 番目のフォームからフォーム データを保存すると仮定すると、別のオプションはデータを 2 回保存することです。
アップロードしたファイルを POST したら、最初に計画していたようにファイルを保存し、その新しいレコードの ID/参照を取得します。
次のフォームは、更新されたフォーム データを同じ ID に保存するだけです。