springboot上传文件临时文件夹找不到不能成功上传问题
错误信息1:org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1220970741172837513.8080/work/Tomcat/localhost/ROOT] is not valid at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:111)
错误信息2:Failed to parse multipart servlet request;
nested exception is java.lang.RuntimeException: java.nio.file.NoSuchFileException:
/tmp/undertow.3701241699676381582.32711/undertow1504003900571732622upload
原因分析:
1、Tomcat在上传文件的时候,会先将文件上传至临时文件夹(默认情况下,tomcat 启动的时候会在 tmp 下 进行初始化临时文件夹,如果上传文件没有指定临时文件夹的位置,这个时候默认为Tomcat 的基本工作路径),由于Linux系统会定期对 tmp下的文件夹进行清除,当一旦这个目录被系统清除掉,在上传文件的时候就会导致找不到路径而报错。
注:Tomcat 在启动的时候根据 server.tomcat.basedir 指定的值(默认 tmp )下初始化 tomcat.xxxxx(上传文件临时路径);默认我们可以在tmp 下面看到很多这样的tomcat 开头的临时文件夹
2、通过spring boot MultipartFile上传文件时,spring boot默认配置会在/tmp下创建undertow的目录,来存放中途临时上传的文件,当上传完成后将/tmp中的文件清理,但在实际工作中,一台服务器的/tmp往往很小,且一台服务器上搭载了很多应用就很容易出现磁盘空间不足的情况
Failed to parse multipart servlet request; nested exception is java.lang.RuntimeException: java.io.IOException: No space left on device
方案1:
在SpringBoot项目中,配置spring.http.multipart.location可以指定上传文件的临时路径。
但是,SpringBoot版本不同,关于这一块的配置也不相同。
1、Spring Boot 1.3 版本:
multipart.location=/data/tmp
2、Spring Boot 1.4 版本和 1.5 版本:
spring.http.multipart.location=/data/tmp
3、Spring Boot 2.0 版本:
spring.servlet.multipart.location=/data/tmp
以上,要注意1.4、1.5版本和2.0版本的区别,不然会不起作用。
方案2:
使用配置类配置
public MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();factory.setLocation(System.getProperty("/data/tmp"));return factory.createMultipartConfig();
}
方案3:
在java启动命令中加入这个参数
-java.tmp.dir=/data/tmp
springboot上传文件临时文件夹找不到不能成功上传问题相关推荐
- bootstrap-fileinput上传文件的插件使用总结----编辑已成功上传过的图片
http://plugins.krajee.com/file-plugin-methods-demo 具体操作 http://plugins.krajee.com/file-preview-manag ...
- python向windows服务器上传文件(夹)
python向windows服务器上传文件(夹) 本人需求分析: 需要从本地将某个指定目录下的文件夹上传至服务器的某个指定目录下. 这次思路是采用python的 paramiko 库.paramiko ...
- vue上传文件到php,vue+axios+php如何实现上传文件功能?,formdata上传文件附加参数...
vue+axios+php如何实现上传文件功能?Vue Axios PHP如何实现上传文件的功能?, 推荐:<PHP视频教程> 当我们提交表单时,我们经常会遇到一些表单提交要求.vue的a ...
- libcurl中上传文件的坑-英文操作系统中文路径无法上传返回26错误码
libcurl中上传文件的坑-英文操作系统中文路径无法上传返回26错误码 最近在使用libcurl使用表单形式上传本地文件,自己测试的时候都没有问题,但是在测试的电脑上无法上传,返回26错误码,在li ...
- android第三方上传文件,安卓和苹果终于打通!互传文件无需借助第三方,一碰就能传...
原标题:安卓和苹果终于打通!互传文件无需借助第三方,一碰就能传 今天在微博上,一位知名数码博主发出了这样一个视频,他先是用自己的坚果R1拍了一张照片,然后进入相册,使用系统内置的文件分享功能,通过 A ...
- PHP上传文件超过了最大文件大小限制导致无法上传成功
最近的研究<HeadFirst PHP & MySQL>第一本书5章"使用存储在文件中的数据",难道当一个文件上传应用程序,发生了错误.即,文件不能成功上传.这 ...
- springboot文件上传提示临时文件夹不存在
项目场景: 附件上传报错: java.io.IOException: The temporary upload location [C:\Users\Administrator\AppData\Loc ...
- c# 用户帐户临时文件夹_注册帐户,上传文件以供批准,以及查看和下载批准的文件
c# 用户帐户临时文件夹 在你开始前 在本系列的第一部分中,您将学习基本PHP语法,形式和功能,以及如何通过PHP应用程序连接和使用MySQL或任何其他数据库. 关于本教程 本教程将引导您使用PHP构 ...
- php下载图片保存到临时文件夹,57、PHP将上传到临时文件夹的文件移动到服务器指定文件夹内...
本节用到的文件操作函数: 1.is_uploaded_file() 函数判断指定的文件是否是通过 HTTP POST 上传的. 2.move_uploaded_file() 函数将上传的文件移动到新位 ...
最新文章
- java反射 获取参数名_java
- 远程办公在美国有多受欢迎?有人宁愿降薪 50% 也不愿再回办公室
- 死磕 java集合之TreeMap源码分析(二)- 内含红黑树分析全过程
- Linux下 WRF Domain Wizard 使用教程(PART1:下载+安装)
- 厌倦了SWT TABLE,何不试试KTABLE?
- DSP基础算法与模型研究
- python连接数据库mysql失败_解决python连接mysql报错问题
- 今天,启动MySQL服务器失败,
- 无人机通信与网络学习笔记
- 网络测试工具iperf使用教程
- 什么是 npm ?npm 下载安装使用
- mysql中rtrim的用法,MySQL RTRIM()用法及代码示例
- 帝国cms栏目添加二级域名
- 数据库 | Mysql - [索引]
- 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
- 华为鸿蒙os对比安卓系统,华为手机鸿蒙OS 2.0、EMUI 11界面对比:安卓底层没了
- C/C++ 自制一个基于zlib的文件的(解)压缩系统
- python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF
- speex库音频降噪(含代码)
- Mac快捷键:文本,浏览器页面,终端terminal
热门文章
- 【毕业设计】30-基于单片机矿井瓦斯_气体浓度_烟雾浓度报警设计(原理图+源代码+仿真+答辩论文+答辩PPT)
- 怎样防止苹果系统更新_苹果xs换过原装屏幕可以更新14系统吗?
- 基于模糊控制的十字路口交通红绿灯控制matlab仿真
- MEM最全汇总及分析
- 视频监控系统上云解决方案EasyCVR集成海康EHome私有协议系列——文件查找操作流程
- 获取用户输入到input的内容并传给后台拿数据
- 滤波器基础05——巴特沃斯、切比雪夫与贝塞尔滤波器
- python中对字符串进行左、中、右对齐操作
- 【CXY】JAVA基础 之 GUI
- 项目管理:如何使用甘特图制定项目计划