spring boot 上传附件文件过大时,没法捕捉异常(二

2019-04-24  本文已影响0人  爱余星痕

上篇已经写了spring boot 2 上传附件文件过大时,没法捕捉异常,但在我另外一个项目中,还是不起作用。
另外一个项目用的是spring boot 1.5,用的是tomcat.
解决办法如下:

    @Bean
    public EmbeddedServletContainerFactory tomcatEmbedded() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
        tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
            // connector other settings...
            // configure maxSwallowSize
            if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
                // -1 means unlimited, accept bytes
                ((AbstractHttp11Protocol<?>)
                        connector.getProtocolHandler()).setMaxSwallowSize(-1);
            }
        });
        return tomcat;
    }

加上上述代码,异常只进入了一次

  1. 先禁用spring boot原生的上传
spring:
    multipart:
          enabled: false
  1. 增加对上传文件大小的限制
@Configuration
public class AttachmentConfiguration {

    @Value("${spring.http.multipart.max-file-size}")
    private String maxFileSize;
    @Value("${spring.http.multipart.max-request-size}")
    private String maxRequestSize;
    @Bean
    public MultipartConfigElement configElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setMaxFileSize(maxFileSize);
        factory.setMaxRequestSize(maxRequestSize);
        return factory.createMultipartConfig();
    }
}

至此,上传问题已解决。前后端均能正常的处理.

上一篇 下一篇

猜你喜欢

热点阅读