zoukankan      html  css  js  c++  java
  • SpringBoot上传文件报错,临时路径不存在

    异常信息

    报错日志:

    The temporary upload location

    [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] is not valid

     

    异常原因

    linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,10就会被系统机制自动删除掉。所以会出现找不到该路径的异常

    Windows上临时路径会创建在

    C:UsersqjcAppDataLocalTemp

    PS:最后面的“.”后面跟的是对应项目的端口号

    所以测试的时候,可以删除这个临时路径让异常复现,然后用下面的方式进行解决:

    1. 临时解决方式:

    可以重启服务,让springboot重新生成临时路径,当然,这个不可取,不建议再生产环境使用

    2.修改配置文件

    在application.yml重新配置一个文件目录,然后重启项目(推荐,亲测有效)

    # 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹

    server.tomcat.basedir=/data/apps/temp

    3.修改配置类

    配置类配置临时文件存储目录(测试无效,原因未知)

    @Bean

        MultipartConfigElement multipartConfigElement() {

            MultipartConfigFactory factory = new MultipartConfigFactory();

            factory.setLocation(“/data/apps/temp”);

            return factory.createMultipartConfig();

        }

  • 相关阅读:
    JVM -- Full GC触发条件总结以及解决策略
    java实现-图的相关操作
    Integer的intValue()方法
    Java transient关键字
    Redis 单线程模型介绍
    String类的intern()方法 -- 重用String对象,节省内存消耗
    数据库阿里连接池 druid配置详解
    redis 实现发布/订阅模式
    Redis实现队列
    redis 实现分布式锁
  • 原文地址:https://www.cnblogs.com/java-spring/p/11833826.html
Copyright © 2011-2022 走看看