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개의 요구로 설정합니다.이러한 값은 물론 중간 데이터가 저장되는 위치(예:/tmpdirectory) 및 에서 공개되는 속성을 사용하여 데이터가 디스크에 플러시되는 임계값을 초과합니다.MultipartProperties예를 들어, 파일을 무제한으로 지정하려면,spring.http.multipart.max-file-size의 재산.-1.멀티파트 지원은 멀티파트 부호화 파일 데이터를 수신할 때 도움이 됩니다.
@RequestParam-type 파라미터MultipartFileSpring 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 |