Комментарий: Загрузка нескольких файлов, возможно, была сложной для реализации в прошлом, но с момента появления HTML5 это стало очень легко. Есть хороший пример ниже, вы можете обратиться к нему.
Основным использованием является множественный атрибут <pint><input type = "file" несколько />>
Вот подробный код страницы:
<! Doctype html>
<html>
<голова>
<meta http-equiv = "content-type" content = "text /html; charset = gb2312" />
<TILE> Решение 4-5: отправка нескольких файлов </title>
</head>
<тело>
<форма
action = "http://10.10.25.31:8080/myupload/uploadphotoservlet" ectype = "multipart/form-data" method = "post">
<input type = "file" multy /> <input
type = "Opport" value = "upper"> <input type = "reset" value = "reset">
</form>
</body>
</html>
Подробный код фона Java:
Импорт java.io.file;
импортировать java.io.ioexception;
импортировать java.text.simpledateformat;
импортировать java.util.calendar;
импортировать java.util.date;
импортировать java.util.list;
Импорт javax.servlet.servletexception;
Импорт javax.servlet.http.httpservlet;
Импорт javax.servlet.http.httpservletrequest;
Импорт javax.servlet.http.httpservletresponse;
Импорт org.apache.commons.fileupload.fileitem;
Import org.apache.commons.fileupload.fileuploadexception;
Import org.apache.commons.fileupload.disk.diskfileitemfactory;
Import org.apache.commons.fileupload.servlet.servletfileUpload;
/**
* Класс внедрения сервлета uploadphotoservlet
*/
открытый класс uploadphotoservlet расширяет httpservlet {
Частный статический конечный длинный SerialVersionuid = 1L;
/**
* @see httpservlet#httpservlet ()
*/
public uploadphotoservlet () {
супер();
// Todo Auto Generated Constructor Stub
}
/**
* @see httpservlet#doget (httpservletrequest, httpservletresponse response)
*/
Защищенная void Doget (httpservletrequest, httpservletresponse response) бросает Servletexception, ioException {
// TODO Автогенерированный метод заглушка
Dopost (запрос, ответ);
}
/**
* @see httpservlet#dopost (httpservlectrequest, httpservletresponse) ответ)
*/
@Suppresswarnings ("не контролировано")
Защищенная void Dopost (httpservletrequest, httpservletresponse response) бросает Servletexception, ioException {
String imagepath = "c: // uploadfile // image //"+geteachdate ()+"//"; // генерировать папки по дате
File uploadpath = new File (imagePath);
if (! uploadpath.exists ()) {
uploadpath.mkdirs ();
}
File tmp = new File ("c: // tmp //");
if (! tmp.exists ()) {
tmp.mkdirs ();
}
DiskFileItemFactory Factory = new DiskFileItemFactory (); // Создать дисковую фабрику
factory.setrepository (tmp); // Установить путь кэша файла
factory.setsizethershold (10 * 1096); // Критическое значение по умолчанию сохранения файлов в памяти или временных папках диска составляет 10240, то есть 10 кб -б.
ServletFileUpload SFU = New ServletFileUpload (Factory); // Создание инструментов обработки
sfu.setsizemax (10*1024*1024); // максимальный размер файла, который может быть получен сервером, -1 означает отсутствие верхнего предела
String filename = null;
пытаться {
List <fieTiTem> list = sfu.parserequest (request); // анализ
if (list.size () <1) {
возвращаться;
}
for (int j = 0; j <list.size (); j ++) {
Fileitem item = list.get (j);
filename = item.getName ();
if (filename.equals ("" ")) {
request.getRequestDispatcher ("/com/visualizerphoto.jsp").
возвращаться;
}
int pos = filename.lastindexof ("."); // Получить формат файла изображения
if (pos> 0) {
Дата дата = новая дата ();
filename = imagePath+date.getTime ()+fileName.substring (pos);
}
System.out.println ("item:"+item);
item.write (новый файл (имя файла)); // записать на диск
}
} catch (fileuploadexception e) {
e.printstacktrace ();
} catch (Exception e) {
e.printstacktrace ();
}
}
// 13-11-15
public static String geteachdate () {
Календарь cal = calendar.getInstance ();
Cal.Add (Calendar.Date, 0);
Строка вчера = new SimpleDateFormat ("yyyy-mm-dd") .format (cal
.getTime ());
String [] dates = вчера.split ("-");
String Realdate = даты [0] .substring (2, 4) + "-" + даты [1] + "-"
+ даты [2];
return Realdate.trim ();
}
}
Вот рендеринг: