解决 Processing of multipart/form-data request failed. /upload/A.tmp (No such file or directory) 问题

2023-11-07

使用spring boot 上传,刚开始一切正常,但过了一段时间上传文件的时候出现错误。

ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]  - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. C:\Users\hp\AppData\Local\Temp\tomcat.7007283165982469173.7102\work\Tomcat\localhost\ROOT\upload_82a53f5c_e2da_43a5_9b71_d5349d403a82_00000067.tmp (系统找不到指定的路径。)] with root cause

究竟是什么原因呢?报错信息已经说了,就是找不到路径,这个路径是tomcat临时文件的目录。

那为什么一开始又一切正常呢?而过了一段时间后就报错了?

其实这跟临时文件夹存活时间有关。如果我们不指定tomcat运行根目录,那么在sping boot 项目启动时,系统会自动创建一个项目运行临时目录,一般在\AppData\Local\Temp\ 目录下。这个临时文件有自己的清理策略,会在一段时间后自动清理。所以说为什么刚开始运行一切正常,而过了一段时间之后就报找不到路径了。

网上有很多解决方案,但很多都无法真正解决,如:

第一种:修改maxInMemorySize,据说上传文件大小若小于此参数,则不会生成临时文件。所以要改小一点,然而并没有什么用。

<bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8" />
        <!-- 指定所上传文件的总大小不能超过2000KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
        <property name="maxUploadSize" value="2048000" />
        <!-- 设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240 -->
        <property name="maxInMemorySize" value="2048" />  
    </bean>
第二种:修改location的值
这个 location 可以理解为临时文件目录,可以通过配置 location 的值,但在spring boot下没有什么作用

/**
 * 文件上传临时路径
 */
 @Bean
 MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("/app/pttms/tmp");
    return factory.createMultipartConfig();
}
最终解决方案(当然也不一定就是你遇到的问题,只是我是这样解决的)

#spring boot 项目中,application.properties增加如下配置指定tomcat的基目录,否则spring boot内嵌的tomcat容器会创建一个临时目录,但是此目录有一个定期清除策略,会影响web容器资源的使用,所以指定在项目根目录创建目录
server.tomcat.basedir=./deployer/tomcat




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 Processing of multipart/form-data request failed. /upload/A.tmp (No such file or directory) 问题 的相关文章

随机推荐

  • Java中的基础----序列化与反序列化的作用

    Java提供两种对象持久化的方式 分别序列化和外部序列化 1 序列化 Serialization 在分布式环境下 无论是何种数据 都会以二进制序列的形式在网络上传输 序列化是一种将对象以一连串的字节描述的过程 用于解决在对对象流进行读写操作
  • Unicode 编码表下载

    概述 很多项目都使用了Unicode 编码表 在此 做个笔录 官网 1 第一入口 https home unicode org 2 第二入口 Unicode 14 0 Character Code Charts 3 第三入口 http ww
  • 如何获得ISO测试版软件,苹果发布iOS11.4 beta2公测版 如何申请iOS11公测资格

    在对应开发者版本推送一天之后 苹果今天凌晨又向公测用户推送了 iOS 11 4 和 tvOS 11 4 的第二个测试版系统更新 iOS 11 4 的 beta 版系统主要用来测试隔空播放 2 以及 iCloud 信息等新功能 tvOS 11
  • 流畅交互体验:实现Vue中el-dialog拖动效果的完美指南

    在使用elementUI中的Dialog组件时 总有无理的产品提需求 在右上角增加可点击全屏的功能 给我实现弹出框可任意拖拽的功能 这种情况下 组件就不能很好的使用了 那么 只能由我们前端攻城狮进行代码攻克了 接下来就实现其中的可拖拽功能
  • UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multibyte sequence

    最近在搞人工智能的东东 玩了玩词云的东西 在编写代码时 出现了一个问题 目的 统计西游记里出现的词的内容 读取西游记整本小说的内容 然后进行统计分析 代码如下 text open 西游记 txt read 但是在执行的时候一直报错 Unic
  • 方舟生存进化秘籍大全

    代码大全 addexperience 10000 0 0 1 给角色加1W经验 可以修改数值 修改人物每升级一次 各种属性的增长倍率 修改文件 common ARK ShooterGame Saved Config WindowsNoEdi
  • adb刷入第三方recovery_【玩机必会技能】小米手机通用刷TWRP RECOVERY

    点击上方 蓝字 关注我们 想让自己的手机获取更多的功能和体验不同的安卓系统 掌握下面这些是必不可少的 此教程也适用于其他品牌的安卓手机 步骤都是一样的 刷入TWRP RECOVERY 这是手机刷入ROOT和第三方ROM的必备工具 而解Boo
  • hualinux2.21 环境搭建:Centos8安装 LVS+keepalived高可用负载均衡

    在前面讲了 hualinux2 19 环境搭建 Centos8 nginx负载均衡 反代 和 hualinux2 20 环境搭建 centos8源安装haproxy 两个常用的负载均衡 基本上都是推荐做七层负载 虽然也有四层负载的能力 现在
  • ViewPager2一页展示多个Item且两边滑动

    ViewPager2一页展示多个Item且两边滑动 研究背景 在项目中有一个滚轮选择器的需求 对于小组件的研发 我一直倾向于自研 一方面功能不复杂 另一方面也锻炼自己的思维能力 不只是局限于上次研发 传统Viewpager解决方法 对于传统
  • C#类型推测

    代码 using System using System Collections Generic using System Linq using System Text using System Threading Tasks namesp
  • IT项目管理 — 作业8

    题目 二选一 教材练习题作业1 3 教材操作案例 Running Case 作业1 3 解答 选择教材练习题作业1 3 练习题1 假设你的组织想聘用新教师来教授项目管理课程 制定一个质量标准的清单 可用于做出此次聘用决定 质量标准清单 教师
  • 判断数组或对象里是否有值

    function checkArray arr for let i 0 i lt arr length i const obj arr i for const key in obj if Object prototype hasOwnPro
  • Windows微信可以上网但是浏览器却用不了网络如何解决

    1 清除DNS缓存 这个主要用于某些网站打不开的情形 首先同时按WINDOWS R键 在弹出窗口输入CMD 然后回车 在弹出的命令提示符中输入ipconfig flushdns 然后回车 2 重置winsock目录 在命令提示符中输入net
  • Git配置用户名和邮箱

    设备 Windows10 git MINGW64 一般刚安装Git都要配置用户名和邮箱 因为你提交代码到本地仓库 上传代码到远程仓库 时会用到 如果没有没有配置 在你提交时它会提醒你的 那么接下来我们讲一下怎么配置 目录 1 查看git的配
  • 基于Python的情感分析案例——知网情感词典

    1 情感分析含义 情感分析指的是对新闻报道 商品评论 电影影评等文本信息进行观点提取 主题分析 情感挖掘 情感分析常用于对某一篇新闻报道积极消极分析 淘宝商品评论情感打分 股评情感分析 电影评论情感挖掘 情感分析的内容包括 情感的持有者分析
  • Linux:apache配置与应用

    Linux apache配置与应用 一 虚拟 Web 主机 1 1 虚拟Web主机 1 2 httpd服务支持的虚拟主机类型 二 基于域名的虚拟主机 2 1 为虚拟主机提供域名解析 2 2 为虚拟主机准备网页文档 2 3 添加虚拟主机配置
  • ezpolt和plot区别_《qqplot2: 数据分析与图形艺术》第4章学习笔记

    第4章 用图层构建图像 每个图层孝可以有自己的数据集和图形属性映射 附加的数据元素可以通过图层添加到图形中 4 2 创建绘图对象 ggplot 函数 有两个主要参数 数据和图形属性映射 这两个参数被设定为绘图的默认参数 只有在新添加的图层里
  • 南桥和北桥-主板芯片组发展史

    转自https baijiahao baidu com s id 1636848759349227507 wfr spider for pc 芯片组无疑是主板重要的组成部分 在我们今天能够看到的主板上芯片组只不过是一个散热片底下的小芯片而已
  • web前后台数据交互的四种方式(转)

    1 利用cookie对象 Cookie是服务器保存在客户端中的一小段数据信息 使用Cookie有一个前提 就是客户端浏览器允许使用Cookie并对此做出相应的设置 一般不赞成使用Cookie 1 后台代码 1 利用cookie对象 Cook
  • 解决 Processing of multipart/form-data request failed. /upload/A.tmp (No such file or directory) 问题

    使用spring boot 上传 刚开始一切正常 但过了一段时间上传文件的时候出现错误 ERROR org apache catalina core ContainerBase Tomcat localhost dispatcherServ