Ограничение загрузки файлов в HTTP
Существует ли теоретически ограничение на размер файла, который может быть загружен клиентом, используя загрузку файла браузера с использованием HTML-формы?
Я создаю это, потому что Flash имеет недостаток, когда самый большой размер файла, который вы можете загрузить, меньше размера доступной ОЗУ. Мне интересно, есть ли какие-то ограничения с браузерами...
Ответы
Ответ 1
Если загрузка файла превышает 2 ГБ, у вас возникнут проблемы с загрузкой HTTP.
Ограничение "доступной ОЗУ" предполагает, что данные файла всасываются в память, что очень неэффективно, особенно когда размер файла растет. Для этого потоки намного эффективнее.
Ответ 2
BranTheMan правильно, я ударил эти проблемы несколько лет назад, и мы декомпилировали биты ASP.NET и обнаружили, что он возьмет файл и поместит его в массив байтов. Поэтому вы не можете обойти это.
Возможно, с 64-битным оборудованием вы можете пропустить предел 2 ГБ, но.. 2 ГБ довольно много, так что, возможно, его достаточно.
Проблема, с которой вы можете столкнуться, заключается в том, что многие люди загружают большие файлы. например, 100 человек загружают 20 мегабайт файлов, поскольку процесс не может выделить более 2 ГБ на стандартном 32-битном сервере. (без изменений конфигурации)
Ответ 3
Здесь - результат исследования относительно загрузки в зависимости от веб-браузеров.
На данный момент только Google Chrome
и Opera
могут выполнять загрузку более чем 4GB
.
Ответ 4
Я полагаю, что это будет зависеть от сервера, получающего запрос, как настроек, так и способа реализации. Вероятно, у Apache есть другая реализация конца приема от IIS. На стороне клиента файл читается с диска (опять же это зависит от браузера, который использует клиент и как он реализован), поэтому его не должно быть. Я не знаю, упоминается ли это в документации IE.