SpringBoot의 @MultipartConfig maxFileSize가 활성화되지 않음
컨트롤러가 탑재되어 있습니다.MultipartConfig
( 아아아아아아아 )
@RestController
@RequestMapping("packages")
@MultipartConfig(maxFileSize = 1024*1024*1024, maxRequestSize = 1024*1024*1024)
public class PackagesController
{
@RequestMapping(method = RequestMethod.POST)
public String create(@RequestParam("package") MultipartFile uploadedPackage)
{
// do stuff to the file
return "create";
}
}
단, 이 엔드포인트에 파일을 업로드하면 이 엔드포인트는 기본 멀티파트 설정 값을 사용하는 것으로 나타납니다.
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field package exceeds its maximum permitted size of 1048576 bytes.
at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:633) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at java.io.FilterInputStream.read(FilterInputStream.java:107) ~[na:1.8.0_45]
at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:98) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:68) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:293) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
at org.apache.catalina.connector.Request.parseParts(Request.java:2776) ~[tomcat-embed-core-8.0.32.jar:8.0.32]
... 30 common frames omitted
응용 프로그램은 다음과 같습니다.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
제가 놓치고 있는 게 있나요?@MultipartConfig
석을을? 츠요시
Spring Boot 2.0에서는 어플리케이션.yml에서 사용해야 합니다.
spring:
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
문서부터:
3을 .
javax.servlet.http.Part
파일 업로드를 지원하는 API입니다.기본적으로는 Spring Boot은 Spring MVC를 파일당 최대 1MB, 최대 10MB의 파일데이터를 1개의 요구로 설정합니다.중간 데이터가 저장되는 위치(예:/tmp
및 을 사용하여 .MultipartProperties
예를 들어 파일을 무제한으로 지정하려면 spring.servlet.multipart.max-file-size 속성을 다음과 같이 설정합니다.-1
.
문서 부록 A에서 발췌
spring.servlet.slashart.max-file-size=1MB # 최대 파일사이즈값은 접미사 "MB" 또는 "KB"를 사용하여 각각 MB 또는 킬로바이트를 나타낼 수 있습니다.
spring.servlet.multipart.max-request-size=10MB # 최대 요청 크기.값은 접미사 "MB" 또는 "KB"를 사용하여 각각 MB 또는 킬로바이트를 나타낼 수 있습니다.
""를 사용할 수 .multipart.max-file-size
★★★★★★★★★★★★★★★★★」multipart.max-request-size
최대 '키우다', '키우다', '키우다', 이렇게 할 수 요.100Mb
application.properties
삭제:
multipart.max-file-size=100MB
multipart.max-request-size=100MB
에는 접미사가 수 .MB
★★★★★★★★★★★★★★★★★」KB
메가바이트 또는 킬로바이트 크기를 나타냅니다.
은 후드에 '스프링 부츠'를 .MultipartConfigElement
MultipartProperties
그 리리 and and andMultipartConfigElement
는 Spring MVC 매뉴얼에 기재되어 있는 Servlet 등록에 사용됩니다.자세한 내용은 스프링 부트 매뉴얼을 참조해 주세요.
spring-boot 1.5.3에서는 application.yml에서 다음 코드를 사용해야 합니다.
spring:
http:
multipart:
max-file-size: 100MB
max-request-size: 100MB
yaml 파일에서 탭이 아닌 공백을 사용하십시오.
멀티파트 업로드의 커스텀 제한을 설정하려면 , 다음의 속성을 사용합니다(샘플 사이즈가 30 MB 의 경우).
spring.http.multipart.max-file-size=30MB
spring.http.multipart.max-request-size=30MB
당사의 프로젝트에서는, 그 중 하나가 Spring Boot 버전 1.3.5 로 되어 있는 것을 알 수 있었습니다.따라서 버전 1.4 미만의 경우 를 사용해야 합니다.
multipart.max-file-size=30MB
multipart.max-request-size=30MB
서블릿 3을 수용하는 스프링 부츠
javax.servlet.http.Part
파일 업로드를 지원하는 API입니다.기본적으로는 Spring Boot에서는 Spring MVC에 파일당 최대 1MB의 파일과 최대 10MB의 파일데이터를 1개의 요구로 설정합니다.이러한 값은 물론 중간 데이터가 저장되는 위치(예:/tmp
directory) 및 에서 공개되는 속성을 사용하여 데이터가 디스크에 플러시되는 임계값을 초과합니다.MultipartProperties
예를 들어, 파일을 무제한으로 지정하려면,spring.http.multipart.max-file-size
의 재산.-1
.멀티파트 지원은 멀티파트 부호화 파일 데이터를 수신할 때 도움이 됩니다.
@RequestParam
-type 파라미터MultipartFile
Spring MVC 컨트롤러 핸들러 방식입니다.
버전 1.3.8에 대한 동일한 문서:
예를 들어 파일을 무제한으로 지정하려면
multipart.maxFileSize
의 재산.-1
.
Spring Boot v2+의 경우 application.properties에 다음 항목을 추가합니다.
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=40MB
애플리케이션 속성도 옵션 중 하나입니다.또 다른 옵션은
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize("10MB");
factory.setMaxRequestSize("10MB");
return factory.createMultipartConfig();
}
jenkins 스크립트를 통해 값이 삽입된 배포에서는 "-"가 허용되지 않습니다.용도:
env:
- name: SPRING_SERVLET_MULTIPART_MAXREQUESTSIZE
value: "10MB"
- name: SPRING_SERVLE
value: "10MB"
언급URL : https://stackoverflow.com/questions/36945482/springboots-multipartconfig-maxfilesize-not-taking-effect
'programing' 카테고리의 다른 글
공백 입력 시 ng-change를 트리거하려면 어떻게 해야 하나요? (0) | 2023.03.25 |
---|---|
Oracle에서 GUID를 생성하는 방법 (0) | 2023.03.25 |
개발 데이터베이스와 운영 데이터베이스를 병합하는 가장 좋은 방법은 무엇입니까? (0) | 2023.03.25 |
리액트 renderToString() 퍼포먼스 및 캐시 리액트컴포넌트 (0) | 2023.03.25 |
TypeScript geting error TS2304: cannot find name ' required' (필요한 이름을 찾을 (0) | 2023.03.25 |