DispatcherServlet은 멀티 패트 리프트를 처리하는 방법을 명시 적으로 알려야합니다.
SpringMVC는 파일을 업로드하는 다음 방법을 제공합니다
xxx-servlet.xml을 구성하고 다음 코드를 추가하십시오.
코드 사본은 다음과 같습니다.
<bean id = "multipartresolver"
클래스 = "org.springframework.web.multipart.commons.commonsmultipartresolver">
<!-업로드 된 파일의 최대 크기를 1MB->로 설정하십시오.
<속성 이름 = "maxuploadsize">
<value> 1048576 </value>
</property>
</bean>
코드 사본은 다음과 같습니다.
<bean id = "multipartresolver"
클래스 = "org.springframework.web.multipart.commons.commonsmultipartresolver">
<!-업로드 된 파일의 최대 크기를 1MB->로 설정하십시오.
<속성 이름 = "maxuploadsize">
<value> 1048576 </value>
</property>
</bean>
여기의 파일 크기는 실제로 단지 총 파일 크기입니다.
파일 크기를 구성하면 예외 정보 제어를 구성해야한다고 생각합니다.
따라서 비정상 디스플레이를 구성해야합니다
코드 사본은 다음과 같습니다.
<!-SpringMVC가 업로드 파일 제한을 초과하면 org.springframework.web.multipart.maxuploadsizeexexexception->가 발생합니다.
<!-이 예외는 업로드 된 파일 정보를 확인할 때 SpringMVC에 의해 발생되었으며 현재 컨트롤러 메소드를 입력하지 않았습니다.
<bean id = "ExceptionResolver"
>
<속성 이름 = "ExceptionMappings">
<Props>
<!-MaxUploadSizeexeceedException 예외를 만나면 자동으로 /web-inf/jsp/error_fileupload.jsp page->로 이동합니다.
<소품
key = "org.springframework.web.multipart.maxuploadsizeexexection"> error_fileupload </prop>
</props>
</property>
</bean>
코드 사본은 다음과 같습니다.
<!-SpringMVC가 업로드 파일 제한을 초과하면 org.springframework.web.multipart.maxuploadsizeexexexception->가 발생합니다.
<!-이 예외는 업로드 된 파일 정보를 확인할 때 SpringMVC에 의해 발생되었으며 현재 컨트롤러 메소드를 입력하지 않았습니다.
<bean id = "ExceptionResolver"
>
<속성 이름 = "ExceptionMappings">
<Props>
<!-MaxUploadSizeexeceedException 예외를 만나면 자동으로 /web-inf/jsp/error_fileupload.jsp page->로 이동합니다.
<소품
key = "org.springframework.web.multipart.maxuploadsizeexexection"> error_fileupload </prop>
</props>
</property>
</bean>
또는 게으르고 크기를 설정하지 않으면 최종 기본값은 무제한입니다. 반품 정보를 제어 해야하는 경우 JSON과 같은 예외 처리에서 지정된 형식 데이터를 반환하는 것을 고려할 수 있습니다.
구성 페이지 후에 항상 그렇듯이 항상 양식 양식에 추가하십시오.
그런 다음 처리해야 할 조치가 있습니다
첫 번째 방법 :
코드 사본은 다음과 같습니다.
공개 문자열 로그인 (@requestparam multipartfile 파일, 모델 모델) {
……………………
}
코드 사본은 다음과 같습니다.
공개 문자열 로그인 (@requestparam multipartfile 파일, 모델 모델) {
……………………
}
파일의 이름은 <input type = file>의 속성 값과 일치해야합니다.
코드 사본은 다음과 같습니다.
공개 문자열 로그인 (@Valid userInfo userInfo, bindingResult result, @requestparam multipartfile [] 파일, 모델 모델) {
……………………
}
코드 사본은 다음과 같습니다.
공개 문자열 로그인 (@Valid userInfo userInfo, bindingResult result, @requestparam multipartfile [] 파일, 모델 모델) {
……………………
}
단일 파일을 생략 할 수 있습니다 @RequestParam 여러 파일을 생략 할 수 없습니다.
두 번째 방법 :
코드 사본은 다음과 같습니다.
Public Model 및 handlerequest (httpservletrequest 요청,
httpservletresponse 응답) 예외 {
// multiparthttpRequest로 변환 :
multiparthttpservletrequest multipartrequest = (multiparthttpservletrequest) 요청;
// 파일 획득 :
multipartfile 파일 = multipartrequest.getFile ( "파일");
}
코드 사본은 다음과 같습니다.
Public Model 및 handlerequest (httpservletrequest 요청,
httpservletresponse 응답) 예외 {
// multiparthttpRequest로 변환 :
multiparthttpservletrequest multipartrequest = (multiparthttpservletrequest) 요청;
// 파일 획득 :
multipartfile 파일 = multipartrequest.getFile ( "파일");
}
이렇게하면 파일을 얻을 수도 있습니다
실제로 첫 번째 구성은 두 개의 JAR 패키지를 추가하는 것입니다.
Commons-FileUpload-1.2.2.jar
Commons-IO-2.1.jar