Отредактируйте страницу upload.html файла загрузки
Примечание: GET не может быть использован при загрузке POST (GET не загружать файлы)
Свойство Enctype Form должно быть установлено в Multipart/Form-Data. (Указывает, что представленные данные являются двоичным файлом)
upload.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>File Upload</title></head><body> <form action="UploadPhotoServlet" method="POST" enctype="multipart/form-data"> Character name:<input type="text" name="heroName"/><br> Upload avatar:<input type="file" name = "filePath"/> <br> <input type = "Отправить" value = "upload"> </form> </body> </html>
Загрузка файла uploadptotoservlet class-разработка функции загрузки
Поместите два JAR Packages Commons-IO-1.4.jar и Commons-FileUpload-1.2.2.jar в каталоге Web-Inf/LIB.
Импорт java.io.file; импорт java.io.fileoutputstream; импорт java.io.ioexception; импорт java.io.inputstream; импорт java.io.printwriter; import java.util.iterator; импорт java.util.list; импорт javax.servletexception; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.commons.fileUplaud.fileitem; import org.apache.commons.file org.apache.commons.fileupload.disk.diskFileItemFactory; import org.apache.commons.fileupload.servlet.servletfileUpload;/** * Класс внедрения Servlet uploadphotoservlet */@webservlet («/uploadphotoservlet») SerialVersionUid = 1L; / ** * @see httpservlet#httpservlet () */ public uploadphotoservlet () {super (); // TODO Автогенерированный конструктор stub}/** * @see httpservlet#doget (httpservlectrequest, httpservletresponse response) */Защищенная void doget (httpservletrequest, httpservelponse response) throws servletexcept response.getWriter (). Append («Служил по адресу:») .append (request.getContextPath ()); String filename = null; DiskFileItemfactory Factory = new DiskFileItemFactory (); // диск ввода файла фабрика ServletFileUpload upload = new ServletFileUpload (Factory); // Отвечает за обработку загруженных данных файла и инкапсуляцию каждого входного элемента в форму в объект FileItem // Установите загруженный размер файла на 10M factory.setsizeTroshold (2*1024*1024); Список элементов = null; try {// parse parses items = upload.parserequest (request); // Получить объект списка, который сохраняет все загруженное содержимое} CATCH (FileUploAdexception e) {// TODO Auto Generated Catch Block e.printstacktrace (); } Iterator iter = item.iterator (); // итерация над загруженными данными файла while (iter.hasnext ()) {fileitem item = (fileitem) iter.next (); if (! item.isformfield ()) {// Если он не загружен // Создать файл avatar на основе финала TimeStamp = System.currentTimeMillis ()+". Jpg"; // Получить папку загрузки через getRealpath. Если проект существует, он не будет существовать в соответствии с текущим проектом, создайте папку проекта // Строка с помощью картинки PhotoFolder = request.getServletContext (). GetRealPath ("uploaded"); Файл F = новый файл (PhotoFolder, имя файла); f.getParentFile (). mkdirs (); // Если родительская папка не существует, она будет создана автоматически // Получите файл загруженный браузером через item.getInputStream () inputStream IS = item.getInputStream (); // Читать файл в // Скопировать файл fileOutputStream fos = new FileOutputStream (f); // показать байт [] b = новый байт [2*1024*1024] на интерфейсе; int len = 0; while ((len = is.read (b))! =-1) {fos.write (b, 0, len); } fos.close (); } else {System.out.println (item.getfieldname ()); // heroname string value = item.getString (); value = new String (value.getBytes ("iso-8859-1"), "UTF-8"); System.out.println (значение); // mulberry}} string html = "<img width = '200' height = '150' src = 'uploaded/%s'/>"; response.setContentType ("text/html"); Printwriter pw = response.getWriter (); pw.format (html, имя файла); } / ** * @see httpservlet#dopost (httpservlectrequest, httpservletresponse response) * / protected void dopost (httpservlectrequest, httpservletresponse response) throws revletexception, ioexception {// todo auto-генерируемое метод STUBSERSE) }}Результаты работы:
Суммировать
Выше приведено код реализации для загрузки файлов на сервер и соответственно отображение функций. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!