一般的web系统基本都会有文件上传功能,文件上传必然涉及到一个问题,就是文件大小,太大的文件不仅传输速度慢,而且对服务器压力巨大,后期的下载和保存都是一种考验。
所以有了文件大小限制,一般我们在处理上传的接口时,其实就可以判断文件大小,这时候做一个大小判断,不符合要求,直接不保存文件,并返回前端相关提示。这种做法有一个不好的地方,就是如果上传方法重载,或者使用的地方不一样,那么每个方法都需要做这样的大小限制判断。
springboot使用MultipartFile上传,可以对文件上传大小做限制。直接配置如下所示:
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=200MB
这种设置,如果不做额外的处理,的确可以起到作用,但是如果你调用上传接口,上传过大文件,返回的结果可能如下所示:
{
"timestamp": "2022-04-09T06:39:28.820+00:00",
"status": 500,
"error": "Internal Server Error",
"path": "/test/upload"
}
这个是springboot通过拦截器做出的返回,而且后台还会打印异常