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 回答