boot项目开发中遇到的文件上传失败问题,在这里简单做个笔记,希望也能帮到大家。
1.max-file-size 引发反思
刚开始application.yaml未配置max-file-size配置,在自己Controller中做了文件大小限制,已方便做国际化返回想要的提升语,然后发现始终不能正确提示,百度了一篇文章说是spring中的maxFileSize默认时10M,我的Controller中做了文件大小限制是5M,就没想着是这块问题,后来排查了半天,只能请教别人,然后大哥把这块配置了下面这块
# Spring相关配置
spring:
servlet:
multipart:
max-file-size: 30MB
再测试发现ok了,于是去看了源码:
发现默认Springboot配置是1M,恍然大悟,这里想说,我们能看源码时尽量多去追一追源码,帖子不一定就是正确的。
2.boot项目文件上传临时文件地址不存在
Springboot项目文件上传时默认时在tmp目录下生成临时文件,而临时文件目录会被linux定时清理,导致上传时找不到目录而上传失败。
1.临时解决方案: 启动springBoot程序,添加使用指定临时目录的启动参数,不适合生产环境
2.修改默认临时文件目录位置:注入bean 或者 修改application server.tomcat.basedir=/data/tmpfile 或 spring.http.multipart.location=/data/tmpfile