Как устранить ошибку FileSizeLimitExceededException? - PullRequest
0 голосов
/ 23 марта 2019

Я получаю сообщение об ошибке при загрузке файла Excel размером более 1 МБ.

[org.springframework.web.multipart.MultipartException: не удалось проанализировать многочастный запрос сервлета; Вложенным исключением является java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase $ FileSizeLimitExceededException: Размер файла полей превышает максимально допустимый размер - 1048576 байт.]

Я пытался решить следующие изменения конфигурации, но ни одно из них мне не помогло.

здесь, я использую (1) Spring boot: 1.5.2 (2) Tomcat 9.0

Шаг 1: application.yml spring: http: multipart: max-file-size:5MB max-request-size:5MB

Шаг 2: Также я попробовал с аннотацией ниже:

@MultipartConfig(fileSizeThreshold=1024*1024*10,maxFileSize=1024*1024*10,maxRequestSize=1024*1024*10)

Шаг 3: <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxSwallowSize="-1" />

Можете ли вы помочь с этим?

Ответы [ 2 ]

1 голос
/ 23 марта 2019

В вашем свойстве есть опечатка S в Spring - это прописные буквы, а не строчные.

С подпружиненной загрузкой 1.5.2 вы можете использовать следующее свойство в application.yml

spring:
 http:
  multipart:
   max-file-size: 100MB
   max-request-size: 100MB

Убедитесь, что в файле yaml используются пробелы, а не табуляция.

0 голосов
/ 23 марта 2019

Включите приведенный ниже код в свой класс SpringBootWebApplication (Main):

Для Java 8:

@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
        if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
            //-1 for unlimited
            ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
        }
    });
    return tomcat;
}

для Java 7:

@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    tomcat.addConnectorCustomizers(new TomcatConnectorCustomizer()  {
        @Override
        public void customize(Connector connector) {
            if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
                //-1 for unlimited
                ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
            }
        }
    });
    return tomcat;
}
...