Artikel ini dibagi menjadi dua aspek untuk dijelaskan:
1. Java mengimplementasikan unggahan dinamis dari beberapa file
2. Selesaikan Masalah Renaming File Java
Untuk referensi Anda, konten spesifik adalah sebagai berikut
1. Unggah beberapa file secara dinamis
<Form name = "xx" action = "<c: url value = '/up3servlet' //>" Method = "POST" ENCTYPE = "Multipart/Form-Data"> <Table ID = "TB"> <TR> <TD> </tdick = "DELETE (THYPET (TYPET =" File "name =" file "> </td ^" </tr> </able> <br/> <input type = "tombol" ontClick = "_ kirim ();" value = "unggah"> <input onClick = "_ add ();" type = "Tombol" value = "add"> </form> </body> <script type = "text/javascript"> function _add () {var tb = document.getElementById ("tb"); // tulis baris var tr = tb.inserTrow (); // tulis kolom var td = tr.insertcell (); // tulis data td.innerHtml = "file:"; // mendeklarasikan td var td2 baru = tr.insertcell (); // Tulis input td2.innerHtml = '<input type = "file" name = "file"/> <tombol ontClick = "_ del (this);"> delete </atton>'; } function _del (btn) {var tr = btn.parentnode.parentnode; //alert(tr.tagname); // Dapatkan subskrip TR dalam tabel var index = tr.rowIndex; // hapus var tb = document.geteLementById ("tb"); tb.deleterow (indeks); } function _submit () {// transtraverse semua file var file = document.geteLementsbyname ("file"); if (file.length == 0) {alert ("Tidak ada file yang dapat diunggah"); mengembalikan false; } untuk (var i = 0; i <file mengembalikan false; }} document.forms ['xx']. Kirim (); } </script> </html>Izin melalui semua file untuk mengunggah
2. Selesaikan masalah nama file duplikat
Paket cn.hx.servlet; impor java.io.file; impor java.io.ioexception; import java.io.printwriter; impor java.util.arraylist; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletResponse; impor org.apache.commons.fileupload.fileitem; org.apache.commons.fileupload.disk.diskfileItemFactory; impor org.apache.commons.fileupload.servlet.servletfileupload; impor org.apache.commons.io.fileutils; class public upiMgServlet memperpanjang httpserve {htronflet {htronflet {htrrlets (publyps (htronflet publyps (htronflet publy (htronflet publy (htronflet publy (publservlet Respons httpservletResponse) melempar servletException, ioException {request.setcharacterencoding ("UTF-8"); String path = getSerVletContext (). GetRealPath ("/up"); DiskfileitemFactory disk = DiskFileItemFactory baru (1024*10, file baru ("d:/a")); ServletfileUpload up = servletfileupload baru (disk); coba {list <fileitem> list = up.parserequest (request); // menerima hanya gambar*.jpg-imamge/jpege., Bmp/imge/bmp, png, daftar <string> imgs = new arraylist <string> (); untuk (fileItem file: list) {if (file.getContentType (). contains ("image/")) {string filename = file.getName (); filename = filename.substring (filename.lastIndexof ("//")+1); // Dapatkan string ekstensi extName = filename.substring (filename.lastIndexof (".")); //. // nama baru string newname = uuid+extname; // UUID digunakan untuk menghasilkan nama folder baru, sehingga tidak akan menyebabkan nama duplikat fileutils.copyInputStreamtofile (file.getInputStream (), file baru (path+"/"+newname)); // letakkan ke daftar imgs.add (newname); } file.delete (); } request.setAttribute ("IMGS", IMGS); request.getRequestDispatcher ("/jsps/imgs.jsp"). Forward (Request, Response); } catch (Exception e) {E.PrintStackTrace (); }}}Di atas mengimplementasikan pengunggahan multi-file Java, yang memecahkan masalah nama duplikat file. Saya berharap ini akan membantu untuk pembelajaran semua orang.