Эта статья разделена на два аспекта, чтобы объяснить:
1. Java реализует динамическую загрузку нескольких файлов
2. Решить проблему переименования файлов Java
Для вашей ссылки конкретный контент заключается в следующем
1. Динамически загружать несколько файлов
<form name = "xx" action = "<c: url value = '/up3servlet' //>" method = "post" ectype = "multiplat/form-data"> <table id = "tb"> <tr> <td> Файл: </td> <td> <input = "file" name = "> <> <tool onclick =" _ del (this); </tr> </table> <br/> <input type = "кнопка" onclick = "_ Opport ();" value = "upload"> <input onclick = "_ add ();" type = "button" value = "add"> </form> </body> <script type = "text/javascript"> function _add () {var tb = document.getElementbyId ("tb"); // Напишите линию var tr = tb.insertrow (); // Записать столбец var td = tr.insertcell (); // написать данные td.innerhtml = "file:"; // объявить новый td var td2 = tr.insertcell (); // Написать ввод TD2.innerHtml = '<input type = "file" name = "file"/> <button OnClick = "_ del (this);"> delete </button>'; } function _del (btn) {var tr = btn.parentnode.parentnode; //alert(tr.tagname); // Получить подписку TR в таблице var index = tr.rowindex; // удалить var tb = document.getElementById ("tb"); tb.deleteterow (index); } function _submit () {// transtraverse all files var files = document.getElementsbyname ("file"); if (files.length == 0) {alert ("Нет файла, который можно загрузить"); вернуть ложь; } for (var i = 0; i <files.length; i ++) {if (files [i] .value == "") {alert (""+(i+1)+"Файлы не могут быть пусты"); вернуть ложь; }} document.forms ['xx']. Opper (); } </script> </html>Итерация через все файлы для загрузки
2. Решите проблему дублирования имени файла
Пакет cn.hx.servlet; импорт java.io.file; импорт java.io.ioexception; импорт java.io.printwriter; import java.util.arraylist; импорт java.util.list; import java.util.uuid; импорт javax.servlet.servletexception. javax.servlet.http.httpservlectrequest; import javax.servlet.http.httpservletresponse; import org.apache.commons.fileupload.fileitem; импорт org.apache.commons.fileupload.disk.diskfileemfactor; org.apache.commons.fileupload.servlet.servletfileupload; import org.apache.commons.io.fileutils; public class upimgservlet расширяет httpservlet {public void dopost (httpservletrequest, httpservelponse response) trows verwexcret, ioexception {httppservonsepons request.setcharacterencoding ("UTF-8"); String path = getServletContext (). GetRealPath ("/up"); Diskfileitemfactory disk = new DiskFileItemFactory (1024*10, новый файл ("d:/a")); ServletFileUpload up = new ServletFileUpload (диск); try {list <fieleTem> list = up.parserequest (request); // получение только изображений*.jpg-amge/jpege., Bmp/imge/bmp, png, list <string> imgs = new Arraylist <string> (); for (fileitem file: list) {if (file.getContentType (). Содержит ("Image/")) {String filename = file.getName (); filename = filename.substring (filename.lastindexof ("//")+1); // get string string extname = filename.substring (fileName.lastIndexof (".")); //. // новое имя string newName = uuid+extname; // UUID используется для генерации нового имени папки, так что он не приведет к тому, что дубликат имени fileutils.copyInputStreamToFile (file.getInputStream (), новый файл (path+"/"+newName)); // Поместить в список imgs.add (newName); } file.delete (); } request.setattribute ("imgs", imgs); request.getRequestDispatcher ("/jsps/imgs.jsp"). } catch (Exception e) {e.printstackTrace (); }}}Вышеуказанное реализует многофильную загрузку Java, которая решает проблему дублирования файлов имен. Я надеюсь, что это будет полезно для каждого обучения.