3

asp.net mvc アクションは、HttpPostedFileBase パラメーターを受け取ります。

public ActionResult Save(HttpPostedFileBase file)
{
    //Q1: at the start of this action method, what's the status of this file? 
    //UploadCompleted or Uploading or something else?

    //Q2: where is the file stored? memory or a temp file?

    if (answer of Q1 is Uploading)
    {
        //Q3a: what happens if file.SaveAs is invoked? 
        //block the current thread until the file is uploaded?
    }
    else if (answer if Q1 is UploadCompleted)
    {
        //Q3b: which means the developer can do nothing before the file is uploaded?
        //if the business logic limits the size of the file(e.g. <= 5MB), how can we
        //prevent evil-intended uploading?
    }
}

ここで Q4: このリクエストの合計時間を記録したいのですが、ユーザーがファイルのアップロードを開始すると、タイマーが開始されます。ユーザーがファイルのアップロードを終了すると (または私のSaveアクションが完了すると)、タイマーが終了します。ユーザーがいつアップロードを開始したかを知るにはどうすればよいですか?

4

1 に答える 1

1

まず、基本についてこの質問を見てください:ファイルのアップロード ASP.NET MVC 3.0

Q1 : ファイルが完全に利用可能になると、アクションが呼び出されます。

Q2: msdn から: http://msdn.microsoft.com/en-us/library/system.web.httppostedfile.aspx

ファイルのアップロードを含む、要求のためにサーバー メモリにバッファリングされるデータの量は、RequestLengthDiskThreshold プロパティにアクセスするか、Machine.config 内の httpRuntime 要素 (ASP.NET 設定スキーマ) 要素の requestLengthDiskThreshold 属性を設定することによって指定できます。または Web.config ファイル。

Q3 : web.config で最大アップロード サイズを指定できます : ASP.NET で最大アップロード ファイル サイズを増やす方法を教えてください。

于 2013-01-29T08:59:47.990 に答える