踩坑记录1---前期技术选择和springboot使用Tomcat上传文件

1前期技术选择

因为是单体的项目,也是受一些因素的影响,像老板跟我讲准备把项目做大,还有之前公司项目的影响,导致主导的某项目技术选择上,采用了前后端分离,前端使用的是vue,然后给后面的SEO优化埋了个小坑

 

2springboot使用Tomcat上传文件

org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1935073155548781490.xxxx(项目端口好)/work/Tomcat/localhost/ROOT] is not valid

导致这个错误的原因是spring boot的应用服务在启动的时候,会生成在操作系统的/tmp目录下生成一个Tomcat.*的文件目录

,这个目录的作用是暂存临时文件,程序对文件的操作时:会生成临时文件,暂存在临时文件中;lunix 系统的tmpwatch 命令会删除10天未使用的临时文件;长时间不操作,导致/tmp下面的tomcat临时文件目录被删除,且删除的文件不可恢复,上传文件时获取不到文件目录,报错

如果是线上问题暂时不方便修改代码最直接的解决方式就是手动创建这个报错的目录/tmp/tomcat.1935073155548781490.xxxx(项目端口好)/work/Tomcat/localhost/ROOT

在代码里可以使用注入一个bean的方式,

/**
 * 文件上传临时路径
 */
 @Bean
 MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("/app/tomcat/tmp");
    return factory.createMultipartConfig();
}

然后更新服务就好了,

出错以后也是百度,学习了一下别人的经验,https://www.cnblogs.com/ldy-blogs/p/8509343.html这是我搜到的文章

你可能感兴趣的:(踩坑记录1---前期技术选择和springboot使用Tomcat上传文件)