هذه المقالة مقسمة إلى جانبين لشرح:
1. Java تنفذ التحميل الديناميكي لملفات متعددة
2. حل مشكلة إعادة تسمية الملف جافا
للرجوع إليها ، المحتوى المحدد هو كما يلي
1. تحميل ملفات متعددة بشكل ديناميكي
<form name = "xx" Action = "<c: url value = '/up3servlet' //>" method = "post" enctype = "multipart/form-data"> <table id = "tb"> <tr> <td> file: </td> <td> <td type = "file =" file "<nutton> </tr> </table> <br/> <input type = "button" onClick = "_ submit () ؛" value = "upload"> <input onClick = "_ add () ؛" type = "button" value = "add"> </pong> </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 </utton>' ؛ } الدالة _del (btn) {var tr = btn.parentnode.parentNode ؛ //alert(tr.tagname) ؛ // احصل على مجموعة tr في الجدول var index = tr.RowIndex ؛ // حذف var tb = document.getElementById ("tb") ؛ TB.DELETROW (الفهرس) ؛ } function _submit () {// transtraverse all files var files = document.getElementSbyName ("file") ؛ if (files.length == 0) {Alert ("لا يوجد ملف يمكن تحميله") ؛ العودة كاذبة } لـ (var i = 0 ؛ i <files.length ؛ i ++) {if (files [i] .value == "") {Alert (""+(i+1)+"لا يمكن أن تكون الملفات فارغة") ؛ العودة كاذبة }} document.forms ['xx']. إرسال () ؛ } </script> </html>تكرار من خلال جميع الملفات للتحميل
2. حل مشكلة اسم الملف مكرر
package cn.hx.servlet ؛ import java.io.file ؛ import java.io.ioException ؛ import java.io.printwriter ؛ import java.util.arraylist ؛ import java.util javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletresponse ؛ import org.apache.commons.fileupload.fileItem org.apache.commons.fileupload.servlet.servletfileupload ؛ استيراد org.apache.commons.io.fileutils ؛ الطبقة العامة upimgservlet يمتد httpservlet {public void dopost (httpservletrequest report) httpletsponse) request.setcharacterencoding ("UTF-8") ؛ string path = getServletContext (). getRealPath ("/up") ؛ DiskfileItemFactory Disk = New DiskfileItemFactory (1024*10 ، ملف جديد ("D:/A") ؛ servletfileupload up = servletfileupload (القرص) ؛ حاول {list <IptiTem> list = up.parserequest (request) ؛ // تلقي الصور فقط*.jpg-AiMge/JPege. ، BMP/IMGE/BMP ، PNG ، قائمة <STR> imgs = new ArrayList <String> () ؛ for (fileItem file: list) {if (file.getContentType (). يحتوي على ("image/")) {string filename = file.getName () ؛ filename = filename.substring (filename.lastindexof ("//")+1) ؛ // الحصول على تمديد سلسلة extName = filename.substring (filename.lastindexof (".")) ؛ //. // new name 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 (استثناء e) {E.PrintStackTrace () ؛ }}}ينفذ ما ورد أعلاه تحميل Java Multifile ، والذي يحل مشكلة أسماء الملف المكررة. آمل أن يكون ذلك مفيدًا لتعلم الجميع.