Как узнать размер файла при загрузке через multipart form-data? - PullRequest
4 голосов
/ 07 мая 2011

Я выполняю простое приложение с клиентом HTML, которое загружает файл на сервер и должно отображать индикатор выполнения:)

Сервер основан на сервлете, некоторые сервлеты получают многокомпонентный контент, анализируют его и т. Д. Очевидно, что в каждый момент я знаю количество полученных байтов. Однако для предоставления информации для индикатора выполнения на стороне клиента сервлету также необходимо общее число байтов для файла, который загружается. Любая идея, где взять общее количество байтов, пожалуйста?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 07 мая 2011

Я думаю, вам нужно реализовать индикатор выполнения в javascript на стороне клиента.

В любом случае, эта ссылка дает объяснение, как это сделать с помощью JQuery.


Сервер может получить размер загружаемой составной части из заголовка HTTP-запроса;см. ответ @ ilya.Однако получить эту информацию и количество байтов, считанных до сих пор в поток HTTP-ответов, которые отображают или обновляют индикатор выполнения, было бы довольно сложно ...

1 голос
/ 07 мая 2011

Размер содержимого помещается в заголовок Content-Length (см. rfc2616 ). В сервлете вы можете получить значение этого заголовка по request.getContentLength() или reqest.getHeaders("Content-Length")

...