开始

之前我们上传的图片格式都不大
image.png

image.png
当前如果我们上传一张500k的图片
image.png
image.png

image.png

yml内找到spring的节点
image.png

image.png
最大文件大小和最大请求文件的大小
image.png

image.png

  1. servlet:
  2. multipart:
  3. max-file-size: 512000 #文件上传大小限制为500kb
  4. max-request-size: 512000 #请求大小限制为500kb

重启服务器测试

image.png
前端没有什么提示,后端控制台报错了。
image.png

image.png

捕获异常

新创建一个包
image.png

创建自定义的异常助手类
image.png

image.pngimage.png
image.png

package com.imooc.exception;

import com.imooc.utils.IMOOCJSONResult;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.multipart.MaxUploadSizeExceededException;

@RestControllerAdvice
public class CutomExceptionHandler {
    public IMOOCJSONResult handleMaxUploadFile(MaxUploadSizeExceededException exception) {
        return IMOOCJSONResult.errorMsg("上传文件大小不能超过500k,请压缩图片或者降低图片质量再上传!");
    }
}

最后加上注解
image.png
把要捕获的异常类放进去
image.png

@RestControllerAdvice
public class CutomExceptionHandler {
    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public IMOOCJSONResult handleMaxUploadFile(MaxUploadSizeExceededException exception) {
        return IMOOCJSONResult.errorMsg("上传文件大小不能超过500k,请压缩图片或者降低图片质量再上传!");
    }
}

image.png

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

测试

测试的时候记得,刷新下前台页面 再来测试。我遇到了缓存的问题,刷新下前台就可以了

image.png

image.png
image.png

尽量不超过500k,以免占用硬盘的容量

结束