Примените ограничение размера загрузки файла на стороне сервера в asp.net C # - PullRequest
1 голос
/ 08 марта 2012

Я применяю ограничение размера загрузки файла, чтобы пользователь не мог загружать файлы более 30 МБ, и сообщаю ему, если он превышает лимит.Я использую следующий код.

if (fileUpload.HasFile)
            {
                if (fileUpload.PostedFile.ContentLength < 30 * 1024 * 1024) // 30 MB
                {
                    if (fileUpload.FileName != null && fileUpload.FileName != "")
                    {
                        UploadFile(fileUpload, "flv,mp3", out videoFileName, out uploadError);
                        if (uploadError != "")
                        {
                            lblMessage.Visible = true;
                            lblMessage.Text = uploadError;
                            return false;
                        }
                    }
                }
                else
                {
                    lblMessage.Visible = true;
                    lblMessage.Text = "File size exceeds the Limits. Please try uploading smaller size file.";
                    return false;
                }
            }

Этот код прекрасно работает в Visual Studio, но когда я развертываю приложение на iis, он не выдает мне никакого сообщения, если я дам больше 30 МБ файла, инапрямую загрузить файл.

, где я делаю не так.

С уважением, Каш

Ответы [ 4 ]

2 голосов
/ 08 марта 2012

При работе под IIS7 Вы можете установить ограничение размера загрузки файла, как это в файле web.config

<system.webServer>    
<security> 
<requestFiltering>                 
<requestLimits maxAllowedContentLength="10485760"/>   
</requestFiltering> 
</security> </system.webServer>
2 голосов
/ 08 марта 2012

Использовали ли вы стандартное свойство конфигурации maxRequestLength?Вполне возможно, что он не подходит для ваших нужд, но он будет работать лучше, если не использовать ресурсы при достижении предела количества файлов.

Объяснение того, как обрабатывать ошибку, см. Лучший способобработка исключений maxRequestLength

<system.web>
  <httpRuntime  maxRequestLength="31457280" executionTimeout="360"/>
</system.web>
1 голос
/ 08 марта 2012

Размер загруженного файла можно проверить только после завершения загрузки. Проверить эту ссылку http://forums.asp.net/t/55127.aspx

1 голос
/ 08 марта 2012

с таким кодом, похоже, он работает таким образом, я имею в виду, что ваш код будет выполняться только в том случае, если весь контент был отправлен на сервер. Вам нужно потрудиться, чтобы проверить размер на стороне клиента, или использовать сторонние плагины, такие как uploadify

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...