Servlet 3.0 потоковое API для загрузки файлов - PullRequest
5 голосов
/ 18 марта 2011

Новый API Servlet 3.0 предоставляет нам удобный способ анализа данных, состоящих из нескольких частей. Но он хранит содержимое загруженных файлов в файловой системе или в памяти

Существует ли потоковый API для Servlet 3.0?

Что-то вроде Commons FileUpload . Я должен записывать контент напрямую из InputStream и записывать в другой OutputStream, а я не хочу хранить временный контент на диске или в памяти

Ответы [ 2 ]

1 голос
/ 15 декабря 2015

Глядя на спецификацию Servlet 3.0, может быть невозможным иметь потоковую реализацию

Для деталей с данными формы в качестве Content-Disposition, но без имени файла, строковое значениечасть также будет доступна через методы getParameter / getParameterValues ​​в HttpServletRequest, используя имя части.

Таким образом, запрос должен быть проанализирован заранее, чтобы все нефайловые части могли быть представленыПараметры HttpServletRequest.

Вы должны использовать сторонние библиотеки, если вам нужна потоковая передача.

1 голос
/ 11 февраля 2012

Я использовал это один раз для чего-то похожего, но не с сервлетами. Это не наполняет вашу память данными. Надеюсь, поможет: http://code.google.com/p/io-tools/wiki/Tutorial_EasyStream

...