SpringBoot项目上传文件报错小结

本文探讨了Linux系统中Tomcat文件上传遇到的临时目录被清理问题,提供了重启项目和使用SpringBoot配置指定上传目录两种解决方案,并重点介绍了后者作为长期解决方案的适用性和步骤。

最近查看之前的项目,发现上传项目报错,经过查找问题,原来是Linux系统中Tomcat的文件上传机制引起,Tomcat在处理文件上传时,会将客户端上传的文件写入临时目录,这个临时目录默认在/tmp路径下,如:“/tmp/tomcat.6574404581312272268.18333/work/Tomcat/localhost/ROOT”。
而操作系统对于/tmp目录会不定时进行清理,如果正好因为操作系统的清理导致对应的临时目录被删除,客户端再上传文件时就会报错:“The temporary upload location is not valid”。

解决方法:

1.重启项目,可以解决(治标不治本,但也能暂时解决问题)

2.通过Spring Boot的配置参数“spring.servlet.multipart.location”明确指定上传文件的临时目录,确保该路径已经存在,而且该目录不会被操作系统清除。(推荐)

spring.servlet.multipart.location=/data/tmp

更多详细分析,可参考转载博客https://www.cnblogs.com/nuccch/p/11546494.html

解决导入Spring Boot项目所有类报错问题的方法如下: - **导入pom.xml文件**:在Idea导入Spring Boot项目代码报红,试过更改maven配置、maven clean操作、执行 -U idea:idea等命令后,仍提示“cannot resolve symbol ‘SpringBootApplication’”,可导入要导入项目的pom.xml文件,而非导入现有项目。选择pom.xml后,在弹出的提示框中选择“add as a maven project”即可[^1][^2]。 - **检查依赖下载情况**:若下载的repository文件夹过小,在100兆左右,可能因网络等因素导致依赖未完全下载。可按以下方式尝试解决: - **清空缓存并重启**:通过“File ---> Invalidate Caches/Restart…”,选择“Invalidate and Restart”清空缓存并重启。若repository下载没问题,可尝试只执行此步骤,无需执行后续步骤[^2]。 - **执行mvn clean install**:在Terminal控制台输入“mvn clean install”命令[^2]。 - **刷maven**:刷项目的maven依赖[^2]。 - **执行 -U idea:idea 命令**:在Maven project中选择对应按钮,在Command line处输入“-U idea:idea”,点击“Execute”执行命令[^2]。 - **修改Maven配置**:对Maven的相关配置进行修改[^2]。 - **修改镜像**:推荐将镜像改成阿里云镜像[^2]。 - **确保正确添加依赖**:若遇到 “Cannot resolve symbol ‘springframework’” 的错误,需确保在pom.xml文件中正确添加了Spring Framework的依赖。具体依赖配置如下: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.9</version> </dependency> ``` [^3] - **指定spring-boot-maven-plugin版本**:若不知道自己Spring Boot版本信息,一般默认是最版。在项目的pom.xml中的spring-boot-maven-plugin下一行写入自己的版本信息即可[^4]。 - **手动下载并导入依赖**:若pom文件中的oracle依赖提示“Missing artifact”,需要手动下载并导入maven。参考oracle依赖下载地址(ojdbc6.jar),cd到下载的ojdbc6.jar所在路径,执行命令“mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc6.jar”(mac端一样)。在pom文件中添加依赖: ```xml <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.1.0</version> </dependency> ``` 若项目在pom文件报错“Missing artifact”,需检查导入的文件位置,查看maven使用的repository位置,并将生成的oracle文件拷贝到对应目录下[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值