Вы можете изменить ограничение по умолчанию (4 МБ) для каталога и его дочерних элементов, поместив специальный файл web.config в этот каталог.Таким образом, вам не нужно заставлять весь сайт разрешать огромные загрузки (это может привести к определенным атакам).
Вот пример из производственного приложения.Этот параметр установлен на 200 МБ:
<?xml version="1.0"?>
<!-- Nested this web.config here to allow for huge uploads (up to 200mb) -->
<configuration>
<system.web>
<httpRuntime maxRequestLength="200000"/>
</system.web>
</configuration>
Вложение web.configs не имеет негативных побочных эффектов - ваши существующие настройки web.config будут по-прежнему работать по всему сайту, и из этого каталога и далее,эти настройки httpRuntime будут унаследованы.
На странице, которая обрабатывает загрузку, убедитесь, что у вас ScriptTimeout выше, чем обычно.Это измеряется в секундах:
Server.ScriptTimeout = 1200;
Мне нравится устанавливать это на странице, а не на web.config, потому что он изолирует увеличенное время ожидания только до этой одной страницы.
На стороне SQL столбцы varbinary могут иметь размер до 2 гигабайт, так что вы можете пойти туда.
Обновление: Я использовал этот подход с 50+ мегабайт файлов, но возможно, что в точке 100 мегапикселей стандартные методы могут выйти из строя.Доступно множество сторонних элементов управления, которые могли бы взять на себя оттуда, но я бы, вероятно, внимательно посмотрел на RadUpload Telerik, так как они качественные и выглядят очень отточенными:* Что касается вашего обновления относительно чтения файла кусками, если вы действительно хотите написать это самостоятельно, Бобби Д. указал на эту статью: Загрузка больших файлов с использованием HttpModule