이 기사는 다음과 같은 두 가지 측면으로 나뉩니다.
1. Java는 여러 파일의 동적 업로드를 구현합니다
2. 파일 이름 변경 문제 Java를 해결하십시오
참조의 경우 특정 콘텐츠는 다음과 같습니다
1. 여러 파일을 동적으로 업로드합니다
<form name = "xx"action = "<c : url value = '/up3servlet'//>"method = "post"enctype = "multipart/form-data"> <table id = "tb"> <tr> <td> 파일 : </td> <td> <td> <td> <td> <file ""file "> <button onclick ="> del (del); "> </tr> </table> <br/> <input type = "button"onclick = "_ down hopment ();"; 값 = "업로드"> <input onclick = "_ add ();" type = "button"value = "add"> </form> </body> <script type = "text/javaScript"> function _add () {var tb = document.getElementById ( "tb"); // 라인 작성 var tr = tb.insertrow (); // write column var td = tr.insertcell (); // 데이터 쓰기 td.innerhtml = "file :"; // 새로운 td var td2 = tr.insertcell ()을 선언합니다. // 입력을 쓰기 td2.innerhtml = '<input type = "file"name = "file"/> <버튼 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.deleterow (색인); } function _submit () {// transtraverse 모든 파일 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']. submit (); } </script> </html>업로드하려면 모든 파일을 반복하십시오
2. 중복 파일 이름의 문제를 해결하십시오
패키지 cn.hx.servlet; import java.io.file; import java.io.ioexception; import java.io.printwriter; import java.util.arraylist; import java.util.list; import java.util.uuid; import javax.servletexception; javax.servlet.http.httpervletrequest; import javax.servlet.http.httpervletresponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.diskfileitemfactory; import org.apache.commons.fileupload.servlet.servletfileupload; import org.apache.commons.io.fileutils; public class upimgservlet 확장 httpservlet {public void dopost (httpservletrequest request, httpservletreponse 응답) servletexmence} request.setcharacterencoding ( "UTF-8"); 문자열 path = getServletContext (). getRealPath ( "/up"); DiskFileItemFactory 디스크 = New DiskFileItemFactory (1024*10, 새 파일 ( "D :/A"); ServletFileUpload UP = 새로운 ServletFileUpload (디스크); try {list <fileitem> list = up.parserequest (요청); // 이미지 만 수신*.jpg-iamge/jpege., bmp/imge/bmp, png, list <string> imgs = new arraylist <string> (); for (fileItem file : list) {if (file.getContentType (). contains ( "image/")) {String filename = file.getName (); filename = filename.substring (filename.lastindexof ( "//")+1); // extension string extname = filename.substring (filename.lastindexof ( ".")); //. // 새 이름 문자열 newName = uuid+extName; // UUID는 새 폴더 이름을 생성하는 데 사용되므로 중복 이름 FileUtils.copyInputStreamTofile (file.getInputStream (), 새 파일 (path+"/"+newName))이 발생하지 않습니다. // imgs.add (newname)를 목록에 넣습니다. } file.delete (); } request.setAttribute ( "imgs", imgs); request.getRequestDispatcher ( "/jsps/imgs.jsp"). forward (요청, 응답); } catch (예외 e) {e.printstacktrace (); }}}위의 것은 Java 멀티 파일 업로드를 구현하여 파일 중복 이름의 문제를 해결합니다. 모든 사람의 학습에 도움이되기를 바랍니다.