1

MVC4(.net 4.5)でファイルをサーバーにアップロードしてメモリに保存できるかどうか疑問に思っています。それから別のフォーム投稿で、そのファイルを収集し、その時点で処理します。

ページの一部にファイルをアップロードし、別の部分にフォームの詳細を送信できるようにする必要がありますが、アップロードしたばかりのファイルにアクセスできるようにする必要があります。論理的な理由から、メイン フォームに同時にファイルを投稿することはできません。それらは分離する必要があります。

4

3 に答える 3

2

ファイルをメモリセッションに保存することもできますが、これにはいくつかのリスクがあります。

  • 誰かがアプリケーション プールまたは Web サーバーをリセットした場合はどうなりますか? そのデータは失われます
  • ユーザーは大きなファイルをアップロードできますか? 小さなファイルがたくさんアップロードされますか? メモリ要件を処理できることを確認する必要があります

これらが問題にならない場合は、ファイルをセッションに保存してください。

Session["UploadedFile"] = someByteArray;

これらが懸念される場合は、次のことをお勧めします。

  • ファイルをディスクに保存し、必要なときに取得します
  • データベースとのセッションでデータを保存する
于 2013-09-03T15:57:10.573 に答える
1

他の答えには素晴らしい説明があります。何かを追加したかっただけです。

最初のページで、ファイルを HD に保存しますが、ファイル名/ID もデータベースに保存します。これで、現在アップロードされているファイル名を指す ID が得られました。この ID は、type="hidden" 入力またはセッション変数を介してページ間で転送できます。

データベースがない場合は、ファイル名が ID になる可能性があります。例: GUID を生成し、ファイル名をこの GUID と共に保存します。例: [guid].xls

于 2013-09-03T18:57:49.860 に答える
0

保存したファイル (またはバイナリ自体) へのパスと共に 2 番目のフォームからフォーム データを保存すると仮定すると、別のオプションはデータを 2 回保存することです。

アップロードしたファイルを POST したら、最初に計画していたようにファイルを保存し、その新しいレコードの ID/参照を取得します。

次のフォームは、更新されたフォーム データを同じ ID に保存するだけです。

于 2013-09-03T16:02:00.800 に答える