Для обработки HTTP multipart/form-data
запросов в сервлете используйте Apache Commons FileUpload . Вы должны получить загруженный файл в формате FileItem
. У него есть метод write()
.
String filename = FilenameUtils.getName(fileItem.getName());
fileItem.write(new File("c:/upload", filename)); // Name must be unique!
Руководство по использованию и другие примеры кода можно найти в Руководстве пользователя .
Чтобы отобразить список файлов в папке, вам необходимо использовать API java.io.File
, у него есть метод listFiles()
, который возвращает список всех файлов (путей) по определенному пути. , Сделайте это с помощью предварительной обработки servlet , которая перенаправляет запрос в JSP для отображения списка.
File[] files = new File("c:/upload").listFiles();
request.setAttribute("files", files);
request.getRequestDispatcher("/WEB-INF/uploads.jsp").forward(request, response);
В файле /WEB-INF/uploads.jsp
используйте JSTL <c:forEach>
для итерации по File[]
.
<c:forEach items="${files}" var="file">
<c:out value="${file.name}" /> (${file.length / 1024}KB)<br/>
</c:forEach>
Обратите внимание, что это, конечно, открыто для более тонкой настройки (UI), но это зависит от вас. Я предполагаю, что вы уже знаете основы HTML / JSP / Servlet.