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

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

作者: 爱余星痕 | 来源:发表于2019-04-24 08:49 被阅读0次

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

  • 解决多次进入全局异常的办法
    修改tomcat的maxSwallowSize配置
    @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;
    }

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

  • 解决接口正常,但前端没办法获取返回值的办法。
    现在接口没有多次进入了,但前端接收到的返回值为空,查了很多,都没找到解决办法。
    最后放弃了,直接使用common-upload;
  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();
    }
}

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

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/kbqwgqtx.html