Spring многочастная загрузка файла с исключением из размера gridfs

2

Использование 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

Как можно изменить этот предел?

  • 0
    Какую версию Spring-Boot вы используете?
  • 0
    @araknoid 1.5.2
Теги:
spring
jhipster
gridfs

4 ответа

2

Добавьте этот контент в WebConfigurer, если он существует

@Bean

public MultipartConfigElement multipartConfigElement() {

     MultipartConfigFactory factory = new MultipartConfigFactory();

     factory.setMaxFileSize("100MB");

     factory.setMaxRequestSize("100MB");

     return factory.createMultipartConfig();

}
1

поскольку 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;
    }
}
1

Вместо того, чтобы настраивать его в своем 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.

  • 0
    У меня нет application.properties но application.yml . Попробовал там, без эффекта. Как я знаю application-dev.yml должен переопределить настройки application.yml . Во всяком случае, у меня есть в обоих, все еще не работает.
  • 0
    Вы уверены, что Spring Boot правильно выбирает файл application-dev.yml? Есть ли другой файл yml?
Показать ещё 3 комментария
0

Попробуй это,

spring:
    servlet:
        multipart:
            max-file-size: 10MB
            max-request-size: 10MB

Ещё вопросы

Сообщество Overcoder
Наверх
Меню