Статус HttpPostedFileBase в asp.net mvc

Действие 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 завершено), таймер заканчивается. Как узнать, когда пользователь начнет загружать?

3
nl ja de

1 ответы

First, have a look a this question for the basics : File Upload ASP.NET MVC 3.0

Q1: Действие вызывается, когда файл полностью доступен.

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

Объем данных, которые буферизуются в памяти сервера для запроса,   который включает в себя загрузку файлов, может быть указан путем доступа к   Свойство RequestLengthDiskThreshold или путем установки   атрибут requestLengthDiskThreshold элемента httpRuntime   (ASP.NET Settings Schema) в файле Machine.config или   Файл Web.config.

Q3 : You can specify max upload size in web.config : How to increase the max upload file size in ASP.NET?

1
добавлено
Блестящий ответ! Как насчет вопроса 4?
добавлено автор Danny Chen, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)