В этой статье используются примеры, чтобы представить, как использовать Commons-fileUpload.jar. Apache Commons-fileupload.jar для облегчения функции загрузки файлов. Конкретный контент заключается в следующем
Поместите Apache Commons-FileUpload.jar в соответствии с Web-Inf/LIB в приложении, и он готов к использованию. В следующем примере показано, как использовать функцию загрузки файла.
Используемая версия FileUpload составляет 1.2, а среда - Eclipse3.3+MyeClipse6.0. FileUpload основан на Commons IO, поэтому перед входом в проект определите пакет JAR Commons IO (с использованием Commons-IO-1.3.2.jar в этой статье) в соответствии с Web-Inf/Lib.
Эта статья является примером проекта, который можно загрузить в приложении в конце статьи.
Пример 1
Самый простой пример - проанализировать запрос через статический класс ServletFileUpload. Заводской класс FileitemFactory обрабатывает все поля в форме класса Mulipart, а не только поля файлов. getName () получает имя файла, getString () получает содержание данных формы, и iSformfield () может определить, является ли это обычным элементом формы.
Demo1.html
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> upload </title> </head> <body> // Должен быть многочисленными данными формы. <form name = "myform" action = "demo1.jsp" method = "post" ectype = "multiply/form-data"> Ваше имя: <br> <input type = "text" name = "name" size = "15"> <br> Файл: <br> <input type = "file" name = "myfile"> <br> <br> <input = "pose" name = "value =" keeal "> <br> <br> <input =" vece = "value ="> ""> ""> ""> ">" ">"> ""> ">"> ">"> ">"> ">" <br> <br> <br> <input = "". </form> </body> </html>
Demo1.jsp
<%@ page language = "java" contentType = "text/html; charset = gb18030" pageencoding = "gb18030"%> <%@ page import = "org.apache.commons.fileupload.*"%> <%@ page import = "org.apache.commons.fileupload. import = "org.apache.commons.fileupload.disk.*"%> <%@ page import = "java.util.*"%> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en"> <%boolean ismultipart = servletfileud.ismultipart.ismultipart. многочисленные данные формы. if (ismultipart == true) {fileitemfactory factory = new DiskFileTemFactory (); // Создать объект DiskFileItemFactory для запроса и проанализировать запрос через него. После того, как анализ будет выполнен, все элементы формы сохраняются в списке. ServletFileUpload upload = new ServletFileUpload (Factory); List <fieleTem> items = upload.parserequest (request); Iterator <fieTiTem> itr = item.iterator (); while (itr.hasnext ()) {fileitem item = (fileitem) itr.next (); // Проверьте, является ли текущий проект нормальным проектом формы или файл загрузки. if (item.isformfield ()) {// Если это обычный элемент формы, отобразите содержимое формы. String fieldName = item.getFieldName (); if (fieldname.equals ("name")) // Ответ на type = "text" name = "name" out.print ("Имя поля есть" + item.getString ()); // Показать содержимое формы. out.print ("<br>"); } else {// Если он загружает файл, отобразите имя файла. out.print («Имя файла загрузки - + item.getName ()); out.print ("<br>"); }}} else {out.print ("Enctype должен быть многоуточным/форм-дата"); }%> <html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> upload </title> </head> <body> </body> </html> результат:
Имя поля Isjeff
Имя файла загрузки ISD:/C образец теста языка/домашнее задание.
Пример 2
Загрузите два файла в указанный каталог.
ДЕМО2.html
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> upload file </title> </head> <body> <form name = "myform" action = "demO2 name = "myfile"> <br> file2: <br> <input type = "file" name = "myfile"> <br> <br> <input type = "Отправить" name = "Отправить" value = "commit"> </form> </body> </html>
Demo2.jsp
<%@ page language = "java" contentType = "text/html; charset = gb18030" pageencoding = "gb18030"%> <%@ page import = "org.apache.commons.fileupload.*"%> <%@ page import = "org.apache.commons.fileupload. import = "org.apache.commons.fileupload.disk.*"%> <%@ page import = "java.util.*"%> <%@ page import = "java.io.*"%> <! Doctype html public "-// w3c // dtd html 4.01 transpitional // en"> <%out uptload uptload uptload = "; Boolean Ismultipart = ServletFileUpload.ismultipartContent (запрос); if (ismultipart == true) {try {fileitemfactory factory = new DiskFileItemFactory (); ServletFileUpload upload = new ServletFileUpload (Factory); List <FieleItem> items = upload.parseRequest (request); // Получить все файлы iterator <fieTiTem> itr = items.iterator (); while (itr.hasnext ()) {// обучить каждый элемент файла = (fileitem) itr.next (); String fileName = item.getName (); // Получить имя файла, включая PATH if (fileName! = Null) {file fullfile = new File (item.getName ()); File savedfile = new File (uploadpath, fullfile.getName ()); item.write (savedfile); }} out.print ("upload сразу"); } catch (Exception e) {e.printstackTrace (); }} else {out.println ("Enctype должен быть многоуточным/форм-дата"); }%> <html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> upload </title> </head> <body> </body> </html> результат:
Загрузить успех
В настоящее время вы можете увидеть два файла, которые вы загружены в разделе «D:/Temp».
Пример 3
Загрузите файл в указанный каталог и ограничите размер файла.
Demo3.html
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> upload file </title> </head> <body> <form name = "myform" action = "DEMO3 name = "myfile"> <br> <br> <input type = "Отправить" name = "Отправить" value = "commit"> </form> </body> </html>
Демо
<%@ page language = "java" contentType = "text/html; charset = gb18030" pageencoding = "gb18030"%> <%@ page import = "org.apache.commons.fileupload.*"%> <%@ page import = "org.apache.commons.fileupload. import = "org.apache.commons.fileupload.disk.*"%> <%@ page import = "java.util.*"%> <%@ page import = "java.io.*"%> <! Doctype html public "-// w3c // dtd html 4.01 transpitional // en"> <%uppult uptolad uptolad uptolad uptolad uptolad uptolad uptolad uptolad uptod File ("d: // temp"); // загружать каталог файлов if (! Uploadpath.exists ()) {uploadpath.mkdirs (); } // временный файл файла файла temppathfile = new File ("d: // temp // buffer //"); if (! temppathfile.exists ()) {temppathfile.mkdirs (); } try {// Создать фабрику для элементов файлов на основе дисков DiskFileItemFactory factory = new DiskFileTemFactory (); // установить фабрику Factory. SetSizeTherShold (4096); // Установить размер буфера, вот 4KB Factory.SetRepository (Temppathfile); // установить буферный каталог // Создать новый обработчик загрузки файла ServletFileUpload upload = new ServletFileUpload (Factory); // Установить общий размер запроса upload.setsizemax (4194304); // Установить максимальный размер файла, вот 4MB List <FieleItem> items = upload.parserequest (request); // Получить все файлы iterator <fieTiTem> i = items.iterator (); while (i.hasnext ()) {fileitem fi = (fileitem) i.next (); String fileName = fi.getName (); if (filename! = null) {file fullfile = new File (fi.getName ()); File savedfile = new File (uploadpath, fullfile .getName ()); fi.write (savedfile); }} out.print ("upload сразу"); } catch (Exception e) {e.printstackTrace (); }%> <html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> upload </title> </head> <body> </body> </html> Пример 4
Используйте сервлет для реализации загрузки файлов.
Upload.java
пакет com.zj.sample; Импорт java.io.file; импорт java.io.ioexception; import java.util.iterator; import java.util.list; import javax.servlet.servletexception; импорт javax.servlet.http.httpservlet; import javax.servlet.http.httpservlectrequest; javax.servlet.http.httpservletresponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.disk.diskfiletemfactory; import org.apache.commons.fileupload.servlet.servletfileUpload; @Suppresswarnings ("serial") открытый класс загрузка расширяется httpservlet {private string uploadpath = "d: // temp"; // каталог для загрузки файлов Private String Temppath = "d: // temp // buffer //"; // временный файл файла файла Temppathfile; @Suppresswarnings ("unchecked") public void dopost (httpservletrequest, httpservletresponse response) Throws ioexception, Servletexception {try {// Создание фабрики для элементов файлов на основе диска DiskFileTemFactory = new DiskFileTemFactory (); // установить фабрику Factory. SetSizeTherShold (4096); // Установить размер буфера, вот 4KB Factory.SetRepository (Temppathfile); // установить буферный каталог // Создать новый обработчик загрузки файла ServletFileUpload upload = new ServletFileUpload (Factory); // Установить общий размер запроса upload.setsizemax (4194304); // Установить максимальный размер файла, вот 4MB List <FieleItem> items = upload.parserequest (request); // Получить все файлы iterator <fieTiTem> i = items.iterator (); while (i.hasnext ()) {fileitem fi = (fileitem) i.next (); String fileName = fi.getName (); if (filename! = null) {file fullfile = new File (fi.getName ()); File savedfile = new File (uploadpath, fullfile.getName ()); fi.write (savedfile); }} System.out.print ("Загрузить успешно"); } catch (Exception e) {// страница ошибки может быть запрыгнута e.printstacktrace (); }} public void init () throws ServletException {file uploadfile = new File (uploadPath); if (! uploadfile.exists ()) {uploadfile.mkdirs (); } File temppathfile = new File (temppath); if (! temppathfile.exists ()) {temppathfile.mkdirs (); }}} Демо. HTML
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = gb18030"> <title> загрузка файла </title> </head> <body> // action = "fileupload" соответствует настройке <url-pattern> в <servlet-mapping> in web.xml. <form name = "myform" action = "fileupload" method = "post" ectype = "multipr/form-data"> файл: <br> <input type = "file" name = "myfile"> <br> <br> <input type = "Отправить" name = "value =" commit "> </form> </html>
web.xml
<servlet> <servlet-name> upload </servlet-name> <berlet-class> com.zj.sample.upload </servlet-class> </servlet> <servlet-mapping> <servlet-name> upload </servlet-name> <url-pattern>/fileupload </url-pattern> </servlet-mapping> <url-pattern>/fileupload </url-pattern>
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.