Springboot2.X 文件上传的大小限制

1. 在yml中配置上传大小的限制,如下:

spring:
  servlet:
    multipart:
      max-file-size: 512000     # 文件上传大小限制为500kb
      max-request-size: 512000  # 请求大小限制为500kb

 

2. 配置全局异常捕获:

@RestControllerAdvice
public class CustomExceptionHandler {

    // 上传文件超过500k,捕获异常:MaxUploadSizeExceededException
    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public IMOOCJSONResult handlerMaxUploadFile(MaxUploadSizeExceededException ex) {
        return IMOOCJSONResult.errorMsg("文件上传大小不能超过500k,请压缩图片或者降低图片质量再上传!");
    }
}

3. 测试结果:

  <1>. 小于500KB的,没问题可以上传成功;

  <2>. 大于500KB的,但是小于2M的,会被拦截,测试成功;

  <3>. 大于2M的文件,上传直接没有反应,服务器没有报错没有响应,很郁闷。这个时候测试失败

 

3.3 的解决方案,这问题主要由于tomcat的的文件大小限制,超过了默认的开销大小,就直接取消这个用户请求了,限制了你的访问,这没毛病,只不过没有任何的提示(因为服务器默认你的请求是恶意请求,就直接中断了,不给你回应,这本质是好意~),如果需要提示,则需要再次在yml中新增一个配置项,如下设置-1或者100MB即可

server:
  tomcat:
    max-swallow-size: -1  # tomcat默认大小2M,超过2M的文件不会被捕获,需要调整此处大小为100MB或者-1即可

posted @ 2020-01-12 23:13  风间影月  阅读(5562)  评论(0编辑  收藏  举报