업로드 파일의 페이지 upload.html을 편집하십시오
참고 : 게시물을 업로드 할 때 GET를 사용할 수 없습니다 (파일 업로드 할 수 없음)
ENCTYPE 속성 양식은 멀티 파트/양식 데이터로 설정해야합니다. (제출 된 데이터가 이진 파일임을 나타냅니다)
upload.html
<! docType html> <html> <head> <meta charset = "utf-8"> <title> 파일 업로드 </title> </head> <body> <body> <body action = "uploadphotoservlet"method = "enctype ="multipart/form-data "> 문자 이름 : <input type ="text "/<br> avatar : input : in put type = "file"name = "Filepath"/> <br> <입력 유형 = "value ="upload "> </form> </body> </html>
업로드 기능의 업로드 기능의 업로드 업로드 클래스 업로드 클래스 업로드
Web-Inf/Lib 디렉토리에 두 개의 JAR 패키지 Commons-IO-1.4.jar 및 Commons-FileUpload-1.2.jar를 넣으십시오.
import java.io.file; import java.io.fileoutputStream; import java.io.ioexception; import java.io.inputStream; import java.io.printwriter; import java.util.terator; import java.util.list; import javax.servletexception; javax.servletexception; javax.servlet.http.httpservlet; import javax.servlet.http.htttp.httpervletrequest; import javax.servlet.http.http.htttp.httpervletresponse; import org.apache.commons.fileuplead.fileitem; import org.apache.commons.fileupload org.apache.commons.fileupload.disk.diskfileitemfactory; import org.apache.commons.fileupload.servlet.servletfileupload;/** * 서블릿 클래스 업로드 포스트 로트 렛 */uploadphotoServlet */upportoServlet ( "/upotoservlet") public class upintosvlet extend extendt httend extends httorvlet extends httorvlet httend extends는 SerialVersionUID = 1L; / ** * @httpservlet#httpservlet () */ public uploadphotoservlet () {super (); // TODO 자동 생성 생성자 Stub}/** * @ @httpservlet#doget (httpservletrequest 요청, httpservletreponse responsk) */protected void doget (httpservletrequest 요청), httpservletreponse 응답) servletexception, ioexception // to-goded method em {// to-goded method voccept. response.getWriter (). Append ( "serv at :") .append (request.getContextPath ()); 문자열 filename = null; DiskFileItemFactory Factory = 새로운 DiskFileItemFactory (); // 디스크 파일 항목 공장 ServletFileUpload 업로드 = New ServletFileUpload (Factory); // 업로드 된 파일 데이터를 처리하고 양식의 각 입력 항목을 파일에 캡슐화하는 책임 // 업로드 된 파일 크기를 10m factory.setSizetHreshold (2*1024*1024)로 설정합니다. 목록 항목 = null; try {// parse parses items = upload.parserequest (요청); // 업로드 된 모든 컨텐츠를 저장하는 목록 객체를 가져옵니다.} catch (fileUploadeXception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } iterator iter = items.iterator (); // 업로드 된 파일 데이터를 반복하는 동안 (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (! item.isformfield ()) {// 업로드되지 않은 경우 // timestamp filename = System.CurrentTimeMillis ()+". jpg"에 따라 아바타 파일을 만듭니다. // getRealPath를 통해 업로드 폴더를 가져옵니다. 프로젝트가 존재하는 경우 현재 프로젝트에 존재하지 않으면 프로젝트 폴더를 작성 // 그림 폴더 문자열 photofolder = request.getServletContext (). getRealPath ( "Uploaded"); 파일 F = 새 파일 (Photofolder, filename); f.getParentFile (). mkdirs (); // 상위 폴더가 존재하지 않으면 자동으로 생성됩니다. // item.getInputStream () inputStream은 = item.getInputStream ()을 통해 브라우저에서 업로드 한 파일을 가져옵니다. // 파일을 읽습니다. // 파일을 복사 파일을 복사합니다. fos = new FileOutputStream (f); // 인터페이스에 byte [] b = new Byte [2*1024*1024]를 표시합니다. int len = 0; while ((len = is.read (b))! = -1) {fos.write (b, 0, len); } fos.close (); } else {system.out.println (item.getfieldName ()); // heroname string value = item.getString (); value = new String (value.getBytes ( "ISO-8859-1"), "UTF-8"); System.out.println (값); // mulberry}} 문자열 html = "<img width = '200'height = '150'src = '업로드/%s'/>"; Response.setContentType ( "Text/Html"); printwriter pw = response.getwriter (); pw.format (html, filename); } / ** * @ @httpservlet#dopost (httpservletrequest request, httpservletresponse 응답) * / protected void dopost (httpservletrequest request, httpservletrepsonse 응답) servletexception, ioexception {// auto-gentated methove (todo-gettated methove) }}실행 결과 :
요약
위는 파일을 서버에 업로드하고 그에 따라 함수를 표시하기위한 구현 코드입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!