Лучший способ убедиться, что пользователь не загружает изображения размером более 1 МБ - PullRequest
3 голосов
/ 01 мая 2009

Я использую ASP.net с VB.NET. Есть ли какой-нибудь Validator, который я могу использовать, чтобы проверить размер загруженного изображения? Иначе, что я должен сделать в коде, чтобы убедиться, что пользователь не загружает изображения более 1 МБ?

p.s C # код также подойдет, я могу использовать конвертер для VB.NET

EDIT

По какой-то причине, когда я изменяю maxRequestLength на 1024 (в моем WEB.config) и загружаю изображение размером 1,25 Мб, я получаю страницу с ошибкой Microsoft, которая говорит: «Internet Explorer не может отобразить веб-страницу». И у меня есть блок Try Catch внутри моей кнопки Отправить. Если я удалю maxRequestLength из моего Web.config, он будет работать нормально.

Ответы [ 3 ]

4 голосов
/ 01 мая 2009

Это в конечном итоге обрабатывается в Web.config. Найдите раздел httpRuntime:

<httpRuntime 
 executionTimeout="110" 
 maxRequestLength="4096" 
/>

В httpRuntime есть много других настроек, но эти два имеют значение. Здесь maxRequestLength устанавливается на 4096 или 4 КБ (число в байтах). Итак, установите это значение соответственно. Кроме того, вы также захотите соответственно установить значение executeTimeout, чтобы оно дало разумное количество времени на загрузку независимо от того, что вы загружаете максимально.

2 голосов
/ 01 мая 2009

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

Request.Files(0).ContentLength / 1024
0 голосов
/ 04 мая 2009

Не удается отобразить ошибку веб-страницы, потому что ASP.NET разрывает соединение для слишком больших запросов, чтобы смягчить атаки DOS на основе слишком больших запросов. Чтобы обойти это, вы должны выполнить загрузку в iframe, а затем определить, произошла ошибка или нет. Вы также можете использовать компонент загрузки Flash, Silverlight, Java или ActiveX, установленный на клиенте, для проверки размера клиентского файла, но это потребует установки в зависимости от вашего решения.

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