springboot项目上传文件出现临时文件目录为空

最近写文件上传到服务器读取的代码,前端使用FormData上传,服务端用MultipartFile接收,自己测试了下MultipartFile对象有什么东西,结果一般属性都能出来,测试getInputStrea()方法的时候出现了以下错误,简单一看这是什么目录,从来没见过啊:

百度一番之后发现了这是临时文件存放的路径,不清楚根据什么去放在这个目录的,但是这个目录本机的确没有,linux系统下好像系统会10天清空一次,翻阅了API底下有这个

百度的时候也发现另外一个坑,spring配置的MaxInMemorySize配置决定会不会存成临时文件,超过MaxInMemorySize这个大小,则会生成一个临时文件在你的localhost文件夹下。小于这个值,则是存在内存中,不生产临时文件了,所以这个值设置小点,报错也是FileNotFoundException,注意一下

有网友建议springboot配置tomcat临时文件目录,这个方法没试,我是直接在配置类中加了一个方法,可以参考下:

@Beanpublic MultipartConfigElement multipartConfigElement(){   MultipartConfigFactory multipartConfigFactory = new MultipartConfigFactory();   String location = System.getProperty("user.dir") + "/data/tmp";   File file = new File(location);   if(!file.exists()){      file.mkdirs();   }   multipartConfigFactory.setLocation(location);   return multipartConfigFactory.createMultipartConfig();}

然后debug了下,发现getInputStream()中的path就是我设置的了:

如果设置了MaxInMemorySize大小,设置了路径还是不行,可以把MultipartFile设置为File做操作

最后说句,代码不懂得一定要看API,一下子就豁然开朗了


原文地址:https://www.cnblogs.com/jpfss/p/12193245.html

时间: 2024-10-09 22:19:48

springboot项目上传文件出现临时文件目录为空的相关文章

vue项目上传文件以及进度条

最近做项目的时候,需要上传自定义镜像.并且附带进度条,上网查询一下资料,经过一番折磨,也总算做出来了,把自己写项目的内容给大家分享一下. 先直接贴代码吧 1.首先声明一个formData对象. 2.把需要上传的参数利用append追加进去. append('参数名','值') 第一个this.$refs.upload.files[0],其实就是input标签加上ref唯一关键字就是upload. var fd = new FormData(); fd.append('image', that.$

springboot 头像上传 文件流保存 文件流返回浏览器查看 区分操作系统 windows 7 or linux

1 //我的会员中心 头像上传接口 2 /*windows 调试*/ 3 @Value("${appImg.location}") 4 private String winPathPic; 5 /*linux 使用*/ 6 @Value("${img.location}") 7 private String linuxPathPic; 8 9 @PostMapping(value = "/file") 10 public String file(

IIS7.5 部署Silverlight项目上传文件报错

好久没写博客了,这次写博客呢,主要是因为上述纠结了我2天的时间,我本身对IIS的架构了解的也不透彻. 首先,介绍一下此次部署的环境: 1.Windows Server 2008 R2 标准版 2.IIS7.5 3.非Administrator用户部署和访问 4.程序部署在默认网站下面 其次,介绍一下开发的环境: 1.vs 2010+silverlight 5.0 网站由工程实施人员部署后的现状: 1.网站除系统中涉及到所有上传功能都不能用以为,其他功能一切正常 2.上传功能不能用,界面提示错误为

spring-boot上传文件MultiPartFile获取不到文件问题解决

1.现象是在spring-boot里加入commons-fileupload jar并且配置了mutilPart的bean,在upload的POST请求后,发现 multipartRequest.getFiles("file")=null,有点奇怪,查了文档资料才解决. [java] view plain copy <bean id="multipartResolver" class="org.springframework.web.multipar

springboot(十七):使用Spring Boot上传文件

上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

PHP上传文件详解

1.上传文件使用的提交方式和请求Content-type POST提交方式,原始的form表单提交请加上enctype="multipart/form-data" 2.MAX_FILE_SIZE 隐藏字段(单位为字节) 必须放在文件输入字段之前,其值为接收文件的最大尺寸.这是对浏览器的一个建议,PHP 也会检查此项.在浏览器端可以简单绕过此设置,因此不要指望用此特性来阻挡大文件.实际上,PHP 设置中的上传文件最大值是不会失效的.但是最好还是在表单中加上此项目,因为它可以避免用户在花时

JSP上传文件

客户端 html form表单: 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传:只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. HTML代码 <form name="myform" action="MyJsp.jsp" method=&q

【springmvc】springmvc中如何上传文件

使用到的组件:可自行根据情况选择版本 <!--上传依赖包--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <!--commons-upload依赖包begin-->

通过PHP上传文件

通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:&l