SpringMVC의 기본 구문 분석기에는 파일 업로드 용 파서가 포함되어 있지 않습니다. SpringMVC를 사용하여 파일을 업로드 할 때는 SpringMVC에서 제공하는 Multipartresolver 선언을 사용해야합니다. Commonsmultipartresolver는 Multipartresolver 인터페이스를 구현하기 때문에 SpringMVC 구성 파일에서 다음과 같이 구성 할 수 있습니다.
<bean id = "multipartresolver"> <property name = "defaultencoding"value = "utf-8" /> <property name = "maxuploadsize"value = "10485760000" /> <property name = "maxinmemorysize"value = "40960" /> < /bean>
먼저 파일 업로드, 커먼즈 로깅에 필요한 패키지를 소개합니다.
새 JSP 페이지를 만듭니다.
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 transitional // en" "http://www.w3.org/tr/tml/html 4/tml/html 4/tml 4.html/html 4.tml. <html> <head> <meta http-equiv = "content-type"content = "text/html; charset = utf-8"> title> 파일 업로드 </title> </head> <body> <%-<form action = "user/fileUpload"method = "post"enctype = "multiptar/form-data". ENCTYPE = "multipart/form-data"> <input type = "file"name = "fileUpload"/> <input type = "value ="upload "/> </form> </body> </html>
SpringMVC 업로드 파일에는 여러 형태가 있습니다. 여기에는 두 가지 유형을 소개합니다.
첫 번째 유형은 컨트롤러를보십시오
패키지 gd.hz.springmvc.controller; import java.io.file; import java.io.ioexception; org.springframework.stereotyp.controller import; org.springframework.web.bind.annotation.requestmapping; org.springframework.web.bind.annotation.requestmethod; org.springframework.web.bind.annotation.requestparam; org.springframework.web.multipart.commons.commonsmultipartfile; org.springframework.web.servlet.modelandview import; @Controller ( "USERCONTROLLER") @RequestMapping ( "USER") 공개 클래스 USERCONTROLLER {// 프로세스 파일 업로드 @RequestMapping (value = "FileUpload", Method = requestMed.Post) public model 및 fileUpload ( "FileUpload") {// System.out.println (file.getContentType ()); // 파일 크기 System.out.println을 가져옵니다 (file.getSize ()); // 파일 이름 system.out.println을 가져옵니다 (file.getoriginalFilename ()); // if (! file.isempty ()) {문자열 path = "d :/" + file.getoriginalFilename (); 파일 로컬 파일 = 새 파일 (Path); try {file.transferto (localfile); } catch (delegalstateException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }} 새로운 modelAndView ( "datAsuccess")를 반환합니다. }}CommonsmultipartFile 클래스는 파일 처리를위한 많은 방법을 제공합니다. 예를 들어, 파일 크기, 파일 이름 업로드, 파일 유형 및 특정 사용법은 Spring의 문서를 볼 수 있습니다. TransferTo는 파일을 지정된 장소로 출력합니다.
파일 업로드의 두 번째 방법 인이 방법은보다 일반적으로 사용됩니다.
패키지 gd.hz.springmvc.controller; import java.io.file; import java.io.ioexception; import java.util.iterator; import javax.servlet.http.httpservletrequest; org.springframework.stereotyp.controller import; org.springframework.web.bind.annotation.requestmapping; org.springframework.web.bind.annotation.requestmethod; org.springframework.web.multipart.multipartfile; org.springframework.web.multipart.multiparthttpservletrequest; org.springframework.web.multipart.commons.commonsmultipartresolver; @Controller ( "USERCONTROLLER") @RequestMapping ( "사용자") 공개 클래스 USERCONTROLLER {// 프로세스 파일 업로드 2 @requestMapping (value = "fileUpload2", method = requestMethod.post) public String fileUpload2 (httpervletRequest 요청) 불법 set and IoExcome, // ioExcement, // IoExcement, // Commonsmultipartresolver multipartresolver = 새로운 Commonsmultipartresolver (request.getSession (). getServletContext ()); // 양식이 EncType = "multipart/form-data"인지 확인 if (multipartresolver.ismultipart (request)) {multiparthttpservletrequest multirequest = (multiparthttpservletrequest) 요청; iterator <string> iter = multirequest.getFilenames (); while (iter.hasnext ()) {// commonsmultipartfile에서 상속 된 위의 방법을 소유합니다. multipartfile 파일 = multirequest.getFile (iter.next ()); if (file! = null) {String filename = "damoupload" + file.getoriginalFilename (); 문자열 path = "d :/" + filename; 파일 로컬 파일 = 새 파일 (Path); file.transferto (localfile); }} return "DataSuccess"; }}multiparthttpservletrequest는 다수의 파일과 파일 이름을 얻을 수있는보다 유연한 방법을 제공하며 각 파일을 얻기 위해 통과 할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.