[SPRING] 두 개의 컨트롤러는 Spring Boot에서 최대 파일 크기가 다릅니다.
SPRING두 개의 컨트롤러는 Spring Boot에서 최대 파일 크기가 다릅니다.
Servlet 3.0 사양에서는 두 개의 서블릿이 서로 다른 최대 파일 크기를 가지며 잘 작동합니다.
@WebServlet(urlPatterns = { "/ureupload1" })
// 10MB
@MultipartConfig(maxFileSize = 1024 * 1024 * 10)
public class UploadServlet1 extends HttpServlet {
과
@WebServlet(urlPatterns = { "/ureupload2" })
// 30MB
@MultipartConfig(maxFileSize = 1024 * 1024 * 30)
public class UploadServlet2 extends HttpServlet {
스프링 부트 컨트롤러를 사용하는 경우 @MultipartConfig가 작동하지 않는 것 같습니다.
@Controller
@MultipartConfig(maxFileSize = 1024 * 1024 * 10)
public class UploadController1 {
@RequestMapping(value = "/upload1", method = RequestMethod.POST, consumes = "multipart/form-data")
public ModelAndView doPost(@RequestParam("file") MultipartFile file,
최대 파일 크기가 다른 두 개의 컨트롤러를 어떻게 만듭니 까?
편집하다:
추가 정보 : 기본 최대 파일 크기를 설정하기 위해 다음 특성이 application.properties에 있습니다.
spring.http.multipart.max-file-size=30MB
참고 사항 : SpringBoot의 @MultipartConfig maxFileSize가 적용되지 않습니다.
해결법
-
==============================
1.application.properties 파일에 기본 구성을 설정해야합니다.
application.properties 파일에 기본 구성을 설정해야합니다.
spring.http.multipart.max-file-size=30MB spring.http.multipart.max-request-size=30MB
그리고 컨트롤러에서 파일 크기에 따라 MaxUploadSizeExceededException 예외를 throw해야합니다.
long limit = 1024 * 1024 * 10; if (file.getSize() > limit) { throw new MaxUploadSizeExceededException(limit); }
from https://stackoverflow.com/questions/45639042/two-controllers-have-different-max-file-size-in-spring-boot by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] org.hibernate.HibernateException : createSQLQuery가 활성 트랜잭션없이 유효하지 않습니다. (0) | 2019.04.29 |
---|---|
[SPRING] 최대 절전 모드 기본 스키마가 작동하지 않습니다. (0) | 2019.04.29 |
[SPRING] 중첩 예외는 java.lang.NoClassDefFoundError : org / hibernate / ejb / HibernatePersistence입니다. (0) | 2019.04.29 |
[SPRING] Vault 백엔드가있는 Spring Cloud Vault와 Spring Cloud Config의 차이점 (0) | 2019.04.29 |
[SPRING] 봄 부팅 + 최대 절전 모드 (0) | 2019.04.29 |