2017년 1월 18일 수요일
Java Config에서 파일 업로드 설정.
Servlet3.0 ? Spring 4.3 ?
무슨 이유인지 모르겠지만 파일 업로드 설정 부분이 바뀐것 같다.
난생 처음 셋팅을 하면서 첨 난관이 많은거 같다.
WebMvcConfigurationSupport 를 상속 받은 ServletContext 영역에 아래의 코드를 넣어 multipart 설정을 한다.
private static final String LOCATION = "C:/mytemp/"; // Temporary location where files will be stored
private static final long MAX_FILE_SIZE = 5242880; // 5MB : Max file size.
private static final long MAX_REQUEST_SIZE = 20971520; // 20MB : Total request size containing Multi part.
private static final int FILE_SIZE_THRESHOLD = 0; // Size threshold after which files will be written to disk
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigElement multipartConfigElement = new MultipartConfigElement( LOCATION, MAX_FILE_SIZE, MAX_REQUEST_SIZE, FILE_SIZE_THRESHOLD);
return multipartConfigElement;
// final MultipartConfigFactory factory = new MultipartConfigFactory();
}
@Bean
public StandardServletMultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}
톰캣 의 server.xml 에서.
<Context 태그로 시작되는 부분에 allowCasualMultipartParsing = "true" 속성을 추가 한다.
이렇게 해놓고 파일 업로드를 해보면 2097152 파일 사이즈 초과 해서 어쩌고 에러 날때 있다.
그때 프로젝트의 web.xml 에
<multipart-config>
<!-- 52MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
이거 추가 해준다.
왜 이렇게 복잡하게 설정해야 하는지 모르겟지마는... java 로 설정 바꿀때 web.xml 도 java로 바꿀껄 신경 쓰이는 부분이 많다.
cvc-complex-type.2.4.a: Invalid content was found starting with element 'multipart-config'. One of '{"http://java.sun.com/xml/ns/javaee":init-param, "http://java.sun.com/xml/ns/javaee":load-on-startup, "http://java.sun.com/xml/
ns/javaee":run-as, "http://java.sun.com/xml/ns/javaee":security-role-ref}' is expected.
web.xml 에 설정 하고 나서 저런 에러 아닌 에러가 발생 하는데 xsd 포멧에 맞지 않아 그렇다고들 한다.
그냥 실행은 잘 된다.
그러므로 일단 무시하는 걸로. ~!
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기