2009-02-10 4 views
4

Есть ли какой-либо способ (возможно, модуль), который может заставить IIS7 отклонить сообщение с файлом размером более 10 МБ?Избежать загрузки файлов размером более 10 МБ

В моем приложении ASP.NET есть страница для загрузки, и файл не может быть больше 10 МБ, я считаю, что могу проверить размер файла только после того, как все уже отправлено на сервер.

Модуль IIS7 был бы правильным выбором для этого, кто-нибудь знает о нем?

ответ

6

Вы можете установить лимит в Web.Config

<system.web> 
    <httpRuntime maxRequestLength="xxxxx" executionTimeout="xx"/> 
</system.web> 

Sidenote:

IIS7 будет отвергать любой файл больше, то 30 мег по умолчанию можно увеличить, добавив следующий код

<security> 
<requestFiltering> 
    <requestLimits maxAllowedContentLength=”XXXXXX″ /> 
</requestFiltering> 
</security> 

Если вы хотите получить размер контента перед отправкой, вы сможете использовать метод HTTP HEAD для получить Content-Length.

Implementation

+0

но это избежать файла, который будет загружен первым, а затем размер проверил? то есть выбрасывает исключение сразу после отправки заголовков? – Bruno

+0

@Bruno, он отключит запрос в 10 МБ и выбросит ошибку, если закончится. Однако нет ничего, что проверит файл перед загрузкой. Есть несколько флеш-роликов, которые делают это, но это, вероятно, не то, что вы хотите. –

+0

Существует рекомендация PHP, предлагающая браузеру не загружать файлы по указанному лимиту, но IMHO ни один браузер не реализует его. –

Смежные вопросы