ユーザーがアップロードしたファイルをセッション変数に保存したいので、プロジェクトで必要な任意のページから使用できます。ステートメントからファイルを取得しています:
httpFileCollection uploads=HttpContext.Current.Request.Files;
これをセッション変数に保存して取得するにはどうすればよいですか??
事前に感謝
ユーザーがアップロードしたファイルをセッション変数に保存したいので、プロジェクトで必要な任意のページから使用できます。ステートメントからファイルを取得しています:
httpFileCollection uploads=HttpContext.Current.Request.Files;
これをセッション変数に保存して取得するにはどうすればよいですか??
事前に感謝
他のオブジェクトをセッション状態に保存および取得するのと同じ方法:
//Store
Session["UploadedFiles"] = uploads;
//Retrieve
if (Session["UploadedFiles"] != null)
{
//try-catch blocks omitted for brevity. Please implement yourself.
HttpFileCollection myUploads = (HttpFileCollection)Session["UploadedFiles"];
// Do something with the HttpFileCollection (such as Save).
// Remove the object from Session after you have retrieved it.
Session.Remove("UploadedFiles");
}
このオブジェクトを Session に保存することの賢明さについてはかなり議論の余地がありますが、私はお勧めしません。
HttpFileCollection 変数をセッション状態に格納できないという競合 (前の質問を参照) については、過去にそれを行うことができたので反論します。オブジェクトを変数に取得したら、必要に応じて保存できます。
そのFiles
オブジェクトは現在のリクエストに限定されます。リクエスト間でこれを保持するには、アップロードされたデータを使用して何かを行う必要がありSaveAs
ますInputStream
。
IMO、スケーラビリティの理由から、セッションに保存することはお勧めできません。たとえば、ファイルをディスク上の共有スクラッチ領域に書き込み、パスをセッションに保存する方が自然です。