Использование Jhipster с Spring + Mongo и Gridfs для обработки файлов, сохраненных в db. Когда я пытаюсь загрузить файлы размером более 1 Мб, это дает мне ошибку 500:
java.io.IOException: UT000054: The maximum size 1048576 for an individual file in a multipart request was exceeded
Пытался установить это в application-dev.yml без успеха:
spring:
http:
multipart:
max-file-size: 10MB
max-request-size: 10MB
Как можно изменить этот предел?
Добавьте этот контент в WebConfigurer, если он существует
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize("100MB");
factory.setMaxRequestSize("100MB");
return factory.createMultipartConfig();
}
поскольку JHipster использует подхват, способ исправления этого - установить размер выгрузки в компоненте multipart resolver следующим образом:
@Configuration
public class UndertowConfiguration {
@Value("${spring.http.multipart.max-file-size:10}")
private long maxFileSize;
@Bean(name = "multipartResolver")
public MultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setDefaultEncoding("utf-8");
multipartResolver.setResolveLazily(true);
multipartResolver.setMaxUploadSize(1024*1024*maxFileSize);
multipartResolver.setMaxUploadSizePerFile(1024*1024*maxFileSize);
return multipartResolver;
}
}
Вместо того, чтобы настраивать его в своем application-dev.yml
, вы можете настроить эти 2 свойства в файле application.properties
:
spring.http.multipart.max-file-size=10MB
spring.http.multipart.max-request-size=10MB
Дополнительную информацию можно получить в руководстве по загрузке Spring Uploading.
В качестве побочного примечания, если вы решите позже перейти на весеннюю загрузку 2.0, эти свойства изменились с spring.http.multipart
на spring.servlet.multipart
.
application.properties
но application.yml
. Попробовал там, без эффекта. Как я знаю application-dev.yml
должен переопределить настройки application.yml
. Во всяком случае, у меня есть в обоих, все еще не работает.
Попробуй это,
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB