• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

SpringBoot配置文件上传限制

武飞扬头像
带码人
帮助1

MultipartFile文件上传限制

spring:
  # 文件大小限制
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB

加入全局异常拦截器

@RestControllerAdvice
@Slf4j
public class RestExceptionHandler {

    /**
     * 文件上传异常
     */
    @ExceptionHandler(MultipartException.class)
    public R handleException(MultipartException e) {
        log.error("Exception,exception:{}", e, e);
        BaseResponseCode em = e.getBaseResponseCode();
        return new R(em.getCode(), "文件过大,请上传小于100M文件!");
    }

    /**
     * 自定义全局异常处理
     */
    @ExceptionHandler(value = BusinessException.class)
    R businessExceptionHandler(BusinessException e) {
        log.error("Exception,exception:{}", e, e);
        BaseResponseCode em = e.getBaseResponseCode();
        return new R(em.getCode(), em.getMsg());
    }

    /**
     * 处理参数格式校验异常
     */
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public R handleValidException(MethodArgumentNotValidException e){
        log.error("参数格式校验异常");
        BindingResult bindingResult = e.getBindingResult();
        HashMap<String, String> errorMap = Maps.newHashMap();
        AtomicReference<String> errorMsg = new AtomicReference<>("");
        bindingResult.getFieldErrors().forEach(fieldError -> {
            errorMsg.set(fieldError.getDefaultMessage());
            errorMap.put(fieldError.getField(),fieldError.getDefaultMessage());
        });
        return R.fail(errorMsg);
    }

    /**
     * 校验List<entity>类型, 需要controller添加@Validated注解
     * 处理Validated List<entity> 异常
     */
    @ExceptionHandler
    public R handle(ConstraintViolationException exception) {
        log.error("methodArgumentNotValidExceptionHandler bindingResult.allErrors():{},exception:{}", exception, exception);
        Set<ConstraintViolation<?>> violations = exception.getConstraintViolations();
        StringBuilder builder = new StringBuilder();
        for (ConstraintViolation<?> violation : violations) {
            builder.append(violation.getMessage());
            break;
        }
        return R.getResult(BaseResponseCode.METHOD_ARGUMENT_NOT_VALID_EXCEPTION.getCode(), builder.toString());
    }

}
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkkfhe
系列文章
更多 icon
同类精品
更多 icon
继续加载