Ограничение загрузки файлов в 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.