В настоящее время существует два часто используемых метода загрузки файлов, один из них Smartupload , а другой - Apache Commons FileUpload .
Здесь мы в основном представляем использование второго. Во -первых, вам нужно загрузить файл и обратить внимание на несколько вопросов:
1 В форме добавьте пространство <input type = "file" name = "myfile">
2 Формат содержимого формы должна быть определена как формат многопорт/форма-даты
3 Требуемая библиотека класса: 1 Commons-IO.Jar 2 Commons-FileUpload-1.3.1.jar
Затем давайте посмотрим на использование.
Во -первых, прочитайте официальную документацию Apache Commons FileUpload, и вы можете найти следующие обычно используемые функции:
1 Создайте объект диапазона файла
Кода кода выглядит следующим образом: DiskFileUpload DiskFileUpload = new DiskFileUpload ();
2 После анализа файла поместите его в список. Поскольку эта библиотека классов поддерживает загрузки нескольких файлов, результат будет сохранен в списке.
Кода кода следующим образом: List <fieletem> list = diskfileupload.parserequest (request);
3 Получите загруженные файлы и выполните анализ (не обязательно)
Кода кода выглядит следующим образом: file remotefile = new File (new String (fileitem.getName (). GetBytes (), "UTF-8"));
4 Создайте новый объект и выполните потоковую копию
file1 = новый файл (this.getServletContext (). getRealPath ("ATTHAMENT"), remoteFile.getName ()); file1.getParentFile (). MkDirs (); file1.createnewfile (); InputStream ins = fileitem.getInputStream (); OutputStream ous = new FileOutputStream (file1); try {byte [] buffer = new Byte [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ous.write (буфер, 0, len); out.println ("Сохранить файл"+file1.getabsolutepath ()+"<br/>"); } наконец {ous.close (); ins.close (); }Таким образом, мы завершаем загрузку файла.
fileupload.html
<form action = "servlet/uploadservlet" method = "post" enctype = "Multipart/form-data"> <div align = "center"> <fieldset> <Legend> file upload </Legend> <br/> <div align = "Left"> upload file1 </div> <div align = with-left wyfle1 </div> <div Align = "div Align =" div Align = "div Align =" Div Align = "div AlIn name = "file1"/> </div> <div align = "left"> upload file2 </div> <div align = "> <input type =" file "name =" file2 "/> </div> <div> <div align = 'слева'> upload file align = 'left'> upload file
web.xml
<servlet> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.test.hello.UploadServlet</servlet-class> </servlet><servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/servlet/UploadServlet</url-pattern> </servlet-mapping>
Uploadservlet.java
пакет com.test.hello; импорт java.io.file; импорт java.io.fileoutputstream; импорт java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.io.printwriter; import java.ut.list; import javax.servlet.sersexception; import java.ut.list; import javax.servletex javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; импорт org.apache.commons.fileupload.diskfileupload; org.apache.commons.fileupload.fileuploadexception; открытый класс uploadservlet расширяет httpservlet { /*** Конструктор объекта. */ public uploadServlet () {super (); } /*** Разрушение сервлета. <br> */ public void destry () {super.destroy (); // просто ставит строку «Уничтожить» в журнале // Поместите свой код здесь} /*** Метод Сервлета Конета. <br> * * Этот метод вызывается, когда форма имеет метод значения тега, чтобы получить. * * @param Запрос запроса Отправить клиентом на сервер * @param ответ Ответ отправил серверу на клиенту * @throws servletexception, если произошла ошибка * @throws ioexception, если произошла ошибка */ public void doget (httpservlectrequest, httpservlectresponse response) throus revletexception, ioexception {response-stetchar-stressponse) response.getWriter (). println («Пожалуйста, загрузите файл в пост»); } /*** Метод Dopost Сервлета. <br> * * Этот метод вызывается, когда форма имеет метод значения тега, равный публикации. * * @param запросить запрос, который запрос отправил клиентом на сервер * @param ответ Ответ Отправлено сервером на клиент * @throws servletexception, если произошла ошибка * @throws ioexception, если произошла ошибка */ @suppresswarnings ({"unchecked", "Commercation"} public voost ({"запрос httpservesvesvesvesvesvesvessessestessespestsespestessespestessEspestessEspes ServletException, ioException {file file1 = null, file2 = null; Строка Описание1 = NULL, description2 = null; response.setcharacterencoding ("UTF-8"); request.setcharacterencoding ("UTF-8"); response.setContentType ("text/html"); Printwriter Out = response.getWriter (); DiskFileUpload DiskFileUpload = New DiskFileUpload (); try {list <fieleTem> list = diskfileUpload.parserequest (request); out.println ("Переносить все файлы ... <br/>"); for (fileitem fileitem: list) {if (fileitem.isformfield ()) {if ("description1" .equals (fileitem.getfieldname ())) {out.println ("transfort to description1 ... <br/>"); description1 = new String (fileitem.getString (). getBytes (), "UTF-8"); } if ("description2" .equals (fileitem.getfieldname ())) {out.println ("Путешествие к описанию2 ... <br/>"); description2 = new String (fileitem.getString (). getBytes (), "UTF-8"); }} else {if ("file1" .equals (fileitem.getfieldname ())) {file remotefile = new File (new String (fileitem.getName (). getBytes (), "utf-8")); out.println ("Путешествие в файл1 ... <br/>"); out.println ("Расположение клиента:"+remotefile.getabsolutepath ()+"<br/>"); file1 = новый файл (this.getServletContext (). getRealPath ("ATTHAMENT"), remoteFile.getName ()); file1.getParentFile (). MkDirs (); file1.createnewfile (); InputStream ins = fileitem.getInputStream (); OutputStream ous = new FileOutputStream (file1); try {byte [] buffer = new Byte [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ous.write (буфер, 0, len); out.println ("Сохранить файл"+file1.getabsolutepath ()+"<br/>"); } наконец {ous.close (); ins.close (); }} if ("file2" .equals (fileitem.getfieldname ())) {file remotefile = new File (new String (fileitem.getName (). getBytes (), "utf-8")); out.println ("Путешествие в файл2 ... <br/>"); out.println ("Расположение клиента:"+remotefile.getabsolutepath ()+"<br/>"); file2 = new File (this.getServletContext (). getRealPath ("ATTHAMENT"), remoteFile.getName ()); file2.getParentFile (). MkDirs (); file2.createnewfile (); InputStream ins = fileitem.getInputStream (); OutputStream ous = new FileOutputStream (file2); try {byte [] buffer = new Byte [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ous.write (буфер, 0, len); out.println («Сохранить файл»+file2.getabsolutepath ()+»<br/>»); } наконец {ous.close (); ins.close (); }}} out.println ("Подбор запроса завершается <br/> <br/>"); }} catch (fileuploadexception e) {} out.println ("<! doctype html public/"-// w3c // dtd html 4.01 transitional // en/">"); out.println ("<head> <Title> a Servlet </title> </head>"); out.println ("<body>"); if (file1! = null) {out.println ("<div>"); out.println ("<div align = 'Left'> file1; </div>"); out.println ("<div align = 'left'> <a href = '"+request.getContextPath ()+"/atchetment/"+file1.getName ()+"' target = _blank>"+file1.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } if (file2! = null) {out.println ("<div align = 'Left'> file2; </div>"); out.println ("<div align = 'left'> <a href = '"+request.getContextPath ()+"/atchetment/"+file2.getName ()+"' target = _blank>"+file2.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } out.println ("<div>"); out.println ("<div align = 'Left'> description1: </div>"); out.println ("<div align = 'Left'>"); out.println (description1); out.println ("</div>"); out.println ("</div>"); out.println ("</div>"); out.println ("<div align = 'Left'> description2: </div>"); out.println ("<div align = 'Left'> description2: </div>"); out.println ("<div align = 'Left'>"); out.println ("</div>"); out.println ("</div>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.close (); } /*** Инициализация сервлета. <br> * * @Throws ServletException, если возникает ошибка */ public void init () бросает ServletException {// Поместить ваш код здесь}}}Запуск примера
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.