springBoot文件上传问题

博客讲述使用Spring Boot进行文件上传时,出现临时上传路径无效的异常。可能原因一是系统启动未创建临时文件或文件被删,二是临时文件无访问权限。解决方案是手动创建上传用的临时文件夹,在启动类创建MultipartConfigElement的bean,在Linux项目部署路径创建的临时文件夹不会被系统删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用springBoot进行文件上传时,系统抛出异常信息:java.io.IOException: The temporary upload location [/tmp/tomcat.7678703764679158021.8085/work/Tomcat/localhost/ROOT] is not valid, 不是有效的文件路径,

可能的原因有两种:1.系统启动时未创建临时文件,或所创建的临时文件在一定时间内被删除。2.临时文件存在,但是没有当前系统用户所访问的权限。

我的解决方案:手动创建上传文件时所使用的临时文件夹。在启动类中进行MultipartConfigElement 的bean创建。

代码如下:

/**
 * 文件上传临时路径
 */
@Bean
public MultipartConfigElement multipartConfigElement() {
   String location = System.getProperty("user.dir") + "/data/tmp";
   File file = new File(location);
   file.setWritable(true, false);
   if (!file.exists()) {
      file.mkdirs();
   }
   MultipartConfigFactory factory = new MultipartConfigFactory();
   factory.setLocation(location);
   return factory.createMultipartConfig();
}

在linux的中会在项目部署的所在路径创建临时文件夹,进行系统上传文件时保存临时文件。此文件夹不会被系统删除。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值