Я использую Java Servlet для обработки формы HTML и включает в себя входной файл элемент:Почему Servlet считает, что мой пустой элемент HTML-файла имеет в нем файл?
<input type="file" id="fileUpload" name="file" multiple />
Я использовал пример кода в this excellent answer для обработки нескольких файлов одновременно. Код, который я использую:
List<Part> fileParts = req.getParts().stream().filter(part -> "file".equals(part.getName())).collect(Collectors.toList()); // Retrieves <input type="file" name="file" multiple="true">
for (Part filePart : fileParts) {
String fileName = filePart.getSubmittedFileName();
InputStream fileContent = filePart.getInputStream();
// Do stuff here
}
Этот код отлично работает. Моя проблема заключается в том, что когда я ничего не прикрепляю, мой код все еще считает, что в файлеPartS есть объект Part. Выполняя некоторую отладку, объект Part, кажется, существует, но, конечно, для InputStream или SubmittedFileName не существует, поскольку я не загружал файлы. Почему это? Я новичок в лямбда-функциях и коллекциях, но похоже, что эта сборка «FileParts» должна быть пустой, когда я не выбираю файлы для загрузки.
Проверьте браузер сетевой консоли. Представляет ли он вход пустой? Это все еще актуально. – Savior