springboot的web项目在linux部署报temporary upload location is not valid错误

Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7333297176951596407.9000/work/Tomcat/localhost/ROOT] is not valid。

错误原因没有找到,但是解决方案成功了。。。这很坑啊。。。
1、表现:
springboot在启动期间应该在linux的/tmp文件夹中建立/tmp/tomcat.7333297176951596407.9000/work/xx文件夹,并且centos可能会在10天左右删除这个暂存文件夹,这也是很多项目部署后报这个错误的原因。
但是经过跟踪,发现项目部署后根本没有在/tmp文件夹中新建暂存文件夹。
2、解决过程:
第一步:我添加如下代码:

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

multipartCache为临时文件夹路径,初设/tmp/tomcat/cache/。
部署后发现依然报错:Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat/cache/] is not valid。
于是手动添加文件夹/tmp/tomcat/cache/,并且修改权限777,结果无效。

第二步:修改暂存地址/user/cache/tomcat,并且在代码中给予可写的权限

@Bean
    MultipartConfigElement multipartConfigElement() {
        File file = new File(multipartCache);
        file.setWritable(true,false);
        if(!file.exists()) {
            file.mkdirs();
        }
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(multipartCache);
        return factory.createMultipartConfig();
    }

然后就成功了。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值