Как Вы ограничиваете размер файла, загружаемого с JavaScript (или Java), не передавая весь файл?

[g1] В интересах освещения. Я выдвинул реализацию с использованием [g0] лямбда-выражений [/g0]. [/G1] [g2] C ++ 11 [/g2] [f1] [g3] C ++ 14 [/g3] [f2]
11
задан coleca 1 October 2008 в 15:16
поделиться

3 ответа

Это не идеальное решение, но если Вы проверяете HTTP-заголовок Довольной Длины с request.getHeader("Content-Length") затем можно принять решение не передать весь файл.

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

С другой стороны, если Вы волнуетесь по поводу атак "отказ в обслуживании", затем Вы не можете действительно доверять заголовку Довольной Длины, потому что он может легко быть подделан. В этом случае необходимо установить предел и передать передачу потоком этого файла, остановившись, как только Вы превысили тот предел.

4
ответ дан 3 December 2019 в 11:04
поделиться

Предложите, чтобы Вы пересмотрели решение Flash и смотрели на Загрузчик YUI, здесь:

http://developer.yahoo.com/yui/uploader/

Среди прочего fileSelect событие скажет Вам размер выбранного файла в байтах сразу после того, как это будет выбрано, но прежде чем это будет загружено, таким образом, Вы сможете ограничить соответственно.

2
ответ дан 3 December 2019 в 11:04
поделиться

С JSP или PHP Вы не сможете ограничить размер файла, потому что Ваша страница не получит запрос, пока загрузки уже не произошло. В той точке можно решить не сохранить файл, но это могло бы быть слишком поздно.

Существуют некоторые решения для Java там, например, MyUploader или Hermes. Некоторые даже поддерживают несколько загрузок файла и возобновления частичных загрузок, и некоторые также дают Вам исходный код. Можно также записать собственное, но это должен будет быть апплет со знаком для функционирования, потому что это должно получить доступ к локальной файловой системе. Если Вы будете использовать Apache в качестве своего веб-сервера, то Вам будет нужно достаточно RAM в Вашей машине для установки целому размеру файла в память обо всех файлах, загружаемых в установленный срок.

1
ответ дан 3 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: