파일 업로드에는 SmartUpload 및 Apache Commons FileUpload가 포함됩니다. 오늘 우리는 Commons FileUpload의 사용을 소개 할 것입니다.
1. Commons-FileUpload-1.3.1.jar
다운로드 주소 : http://xiazai.vevb.com/201608/yuanma/javawebfileupload(Vevb.com).rar
2.web.xml
<!-파일 업로드 서버 측-> <servlet> <servlet-name> 업로드 </servlet-name> <servlet-class> com.servlet.uploadservlet </servlet-class> <init-param> <param-name> filepath </param-name> <!-파일 스토리지 경로-> <Param-value> f :/myeclipse/workpaces/king/webroot/uploadfile/</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> uploadservlet </servlet-name> <url-pattern>/servlet/uploadsile </urlattern> 3.uplothing> 3. action = "servlet/uploadservlet"method = "post"encType = "multipart/form-data"> <div align = "center"> <legend> <egend> upload 파일 </legend> <br align = "left"> upload file1 </div> <div align = "left"> input type = "file ="file 1 "/>. align = "left"> upload file2 </div> <div align = "left"> upload file2 </div> <div align = "left"> 업로드 파일 업로드 파일 1 </div align = "left"> 업로드 파일 1 </div> <div allign = "left"> upload "> upload"> upload "> <div <input type ="file "/////div> <div> <div. align = 'left'> 파일 업로드 </div> <div align = 'left'> <input type = "text"name = "description1"/> </div> <div align = 'left'> 업로드 파일 설명 2 </div align = 'left'> <input type = "text"name = "divig> </div> </div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div align = 'input type ="text " type = 'value = "value ="업로드 파일 "/> </div> </div> </div> </fieldset> </div> </form>
3. 서비스
패키지 com.servlet; import java.io.file; import java.io.fileoutputStream; import java.io.ioexception; import java.io.inputStreamReader; import java.io.outputStream; import java.io.printwriter; import java.util.list; import javax.servlet.servletex emportmence; javax.servlet.http.httpservlet; import javax.servlet.http.htttp.httpervletrequest; import javax.servlet.http.http.httpervletresponse; import org.apache.commons.fileupload.diskfileupload; import org.apache.commons.fileupload org.apache.commons.fileupload.fileuploadexception; import sun.swing.filepane; public class uploadservlet는 httpservlet {private String filepath; /*** 서블릿의 파괴. <br> */ public void destroy () {super.destroy (); // 로그에 "Destroy"문자열을 넣습니다. // 코드를 여기에 넣습니다} public void doget (httpservletrequest 요청, httpservletResponse 응답)은 servletexception, ioexception {response.setcharacterencoding ( "utf-8"); response.getWriter (). println ( "포스트에서 파일을 업로드하십시오"); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {file file1 = null, file2 = null; 문자열 description1 = null, description2 = null; 응답 .SetchAracterEncoding ( "UTF-8"); request.setcharacterencoding ( "UTF-8"); Response.setContentType ( "Text/Html"); printwriter out = response.getwriter (); DiskFileUpload DiskFileUpload = New DiskFileUpload (); // 구문 분석 요청 try {list <fileItem> filleList = diskFileUpload.parsEerequest (request); // rist on .println ( "모든 파일을 통한 추적 ... </br>"); this.log ( "모든 파일을 통한 추적 ..."); for (fileItem fileItem : filEList) {if (fileItem.isformfield ()) {// if it ( "description1".Equals (fileItem.getFieldName ())) {out.println ( "extram to description1 ... </br>"); description1 = 새 문자열 (fileitem.getString (). getBytes (), "utf-8"); } if ( "description2".Equals (fileItem.getFieldName ())) {out.println ( "description2로 이동 ... </br>"); description2 = 새 문자열 (fileitem.getString (). getBytes (), "utf-8"); }} else {// 그렇지 않으면 파일 필드입니다. if ( "file1".Equals (fileItem.getFieldName ())) {file remoteFile = new File (new String (fileItem.getName (). getBytes (), "utf-8"); out.println ( "File1로 이동 ... </br>"); out.println ( "클라이언트 파일 위치 :"+remotefile.getabsolutepath ()+"</br>"); // 서버 측 파일, uploadfile 폴더 파일에 배치합니다. 파일 1 = 새 파일 (filepath, remotefile.getname ()); file11.getParentFile (); mkdirs (); // 폴더 경로 생성 파일 1.createnewFile (); // inputStream ins = fileItem.getInputStream (); // fileItem content outputStream ous = new FileOutputStream (fileoutputStream (file) [// output to buble [1024]; len = 0; // 실제 캐시 길이 ((len = ins.read (buffer))> -1) {// loop read the cache ous.write (buffer, 0, len); } out.println ( "파일 저장"+file1.getabsolutepath ()+"</br>"); } 마침내 {ous.close (); ins.close (); }} if ( "file2".equals (fileItem.getFieldName ())) {file remoteFile = new File (새 String (fileItem.getName (). getBytes (), "utf-8"); out.println ( "file2로 이동 ... </br>"); out.println ( "클라이언트 파일 위치 :"+remotefile.getabsolutepath ()+"</br>"); // 서버 측 파일, uploadfile 폴더 파일에 배치합니다. fille2 = 새 파일 (filepath, remotefile.getname ()); file2.getParentFile (). mkdirs (); // 폴더 경로 생성 file2.createnewFile (); // inputStream ins = fileItem.getInputStream (); // fileItem outputStream ous = new FileOutputStream (fileoutputStream); // file to rite [] bubte [1024]; len = 0; // 실제 캐시 길이 ((len = ins.read (buffer))> -1) {// loop read the cache ous.write (buffer, 0, len); } out.println ( "파일 저장"+file2.getabsolutepath ()+"</br>"); } 마침내 {ous.close (); ins.close (); }}}} out.println ( "요청 구문 분석이 완료되었습니다"); } catch (fileUploadeXception e) {// todo의 자동으로 생성 된 캐치 블록 out.println ( "<! doctype html public/"-// w3c // dtd html 4.01 Transitional // en/">"); out.println ( "<html>"); out.println ( "<head> <title> a servlet </title> </head>"); out.println ( "<body>"); if (file1! = null) {out.println ( "<div align = 'left'> file1; </div>"); out.println ( "<div align = 'left'> <a href = '"+request.getContextPath ()+file1.getName ()+"'target = _blank>"+file1.getName ()+"</a>"); out.println ( "</div>"); out.println ( "</div>"); } if (file2! = null) {out.println ( "<div align = 'left'> file2; </div>"); out.println ( "<div align = 'left'> <a href = '"+request.getContextPath ()+file2.getName ()+"'target = _blank>"+file2.getName ()+"</a>"); out.println ( "</div>"); out.println ( "</div>"); } out.println ( "<div>"); out.println ( "<div align = 'left'> description1 : </div>"); out.println ( "<div align = 'left'> description2 : </div>"); out.println ( "<div align = 'left'> description2 : </div>"); out.println ( "<div align = 'left'> description2 : </div>"); out.println ( "<div align = 'left'>"); out.println ( "<div align = 'left'>"); out.println ( "<div align = 'left'>"); out.println (description2); out.println ( "</div>"); out.println ( "</div>"); out.println ( "</body>"); out.println ( "</html>"); out.flush (); out.close (); }} public string getServletInfo () {return "이것은 Eclipse에서 생성 한 기본 서블릿입니다"; } public void init ()가 servleTexception을 던지려면 {// 코드를 여기에 넣습니다. filepath = getServletConfig (). getInitParameter ( "FilePath"); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.