Большая загрузка файла, хотя форма html (более 2 ГБ)

Можно ли загрузить файл более чем на 2 ГБ, используя простую загрузку формы html? Раньше я загружал большие файлы через silverlight, используя chunking (разделение большого файла на сегменты, а затем загрузку сегментов по одному, а затем сборку сегментов на сервере).

Теперь у нас есть требование, что нам просто нужно использовать простые загрузки формы html (хотя GWT). Пожалуйста, направляйте меня, если есть способ достичь большой загрузки файлов таким образом.

Если это невозможно сделать с помощью простого html, может ли кто-нибудь объяснить мне, как я могу разделить и загрузить файл в сегментах с помощью flex?

2 ответа

Ограничение размера запросов HTTP POST обычно отсутствует на стороне HTML. Это ограничение больше на стороне сервера. Веб-сервер должен быть настроен для принятия больших запросов POST. Обычно по умолчанию часто используется 2 ГБ, и сервер обычно возвращает ошибку HTTP 500. Предел по умолчанию часто может быть увеличен до 4 ГБ, но все, что находится за его пределами, попадет на границу 32-битных систем. На 64-битных системах с 64-битной ОС теоретическая граница намного выше, 16**.

Если настройка веб-сервера для принятия больших запросов POST не является вариантом или когда вы хотите выйти за пределы ограничения веб-сервера, то у вас нет другого выбора, кроме как разделить файл на стороне клиента и повторно собрать части на сервере сторона.

Так как HTML - это только язык разметки, он не предоставляет возможности для разделения файла. Вам действительно нужно использовать обычный язык программирования, такой как С# (Silverlight) или Java (Applet), в стиле небольшого приложения, которое вы обслуживаете на своей веб-странице. Очень возможно, это также возможно с помощью Flash или Flex, но не привязывайте меня к этому, так как я тоже не делаю.

Сказано, что FTP - это гораздо лучший выбор, чем HTTP для передачи (больших) файлов по сети. Я бы пересмотрел выбор использования HTTP для этого.


Используйте API файлов HTML5 для загрузки больших файлов. который имеет концепцию разрезания, так что вы можете загружать большие файлы.

var reader= new FileReader();
reader.onload=function(e){
//do whatever you want with result
}
var blob = file.slice(startingByte, endindByte);//slicing file
reader.readAsBinaryString(blob);

Учебник по файловой системе

Учебник API файлов

licensed under cc by-sa 3.0 with attribution.