SpringMVC中MultipartFile转File的两种方式
作者:扯吧 发布时间:2023-08-18 20:25:00
标签:SpringMVC,MultipartFile,转,File
在spring上传文件中,一般都使用了MultipartFile来接收,但是有需要用到File的地方,这里只介绍两种转为File的方法,当然也有一些其他的方法,我试了有些错误,所以就不提了;
transferTo()
org.apache.commons.io.FileUtils.copyInputStreamToFile()
代码如下:
public void upload(@RequestParam(value = "file") MultipartFile file) {
if (file != null) {
try {
String fileRealName = file.getOriginalFilename();//获得原始文件名;
int pointIndex = fileRealName.lastIndexOf(".");//点号的位置
String fileSuffix = fileRealName.substring(pointIndex);//截取文件后缀
String fileNewName = DateUtils.getNowTimeForUpload();//新文件名,时间戳形式yyyyMMddHHmmssSSS
String saveFileName = fileNewName.concat(fileSuffix);//新文件完整名(含后缀)
String filePath = "D:\\FileAll" ;
File path = new File(filePath); //判断文件路径下的文件夹是否存在,不存在则创建
if (!path.exists()) {
path.mkdirs();
}
File savedFile = new File(filePath);
boolean isCreateSuccess = savedFile.createNewFile(); // 是否创建文件成功
if(isCreateSuccess){ //将文件写入
//第一种
file.transferTo(savedFile);
//第二种
savedFile = new File(filePath,saveFileName);
// 使用下面的jar包
FileUtils.copyInputStreamToFile(file.getInputStream(),savedFile);
}
} catch (Exception e) {
e.printStackTrace();
}
}else {
System.out.println("文件是空的");
}
}
附commons-io jar包maven地址:点击下载 commons-io-2.4.jar
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
来源:https://blog.csdn.net/qq_35564978/article/details/81701518


猜你喜欢
- 本文实例讲述了JAVA实现的简单万年历。分享给大家供大家参考,具体如下:import java.util.Scanner;public cl
- 1. 日志的作用日志是程序的重要组成部分,在程序报错的时候,如果我们不看日志,是很难排查出错误的,除非你真的是很有经验.所以日志最主要的作用
- 引入腾讯云依赖 <!--腾讯云核心API--> <dependency> <groupId>
- 本文实例为大家分享了Unity实现仿3D轮转图效果的具体代码,供大家参考,具体内容如下一、效果演示二、实现思路—&
- 所谓c#的委托就是说把函数当参数来传递。这个在js完全就用不着搞什么委托东西,直接转就是了。而对于C#来说则不是这样!一个函数,如果它的参数
- 大家都知道为了防止我们的网站被有些人和黑客恶意攻击,比如我们网站的注册页面,如果我们在用户注册的时候不加上一个验证码框的话,别人就可以写一个
- Feign简介Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可
- 需要实现看门狗功能,定时检测另外一个程序是否在运行,使用 crontab 仅可以实现检测程序是否正在运行,无法做到扩展,如:手动重启、程序升
- 1、for循环虽然所有循环结构都可以用 while 或者 do…while来表示,但 for 循环的出现,可使一些循环
- 本文实例讲述了C#编程简单实现生成PDF文档的方法。分享给大家供大家参考,具体如下:using System;using System.IO
- 介绍死信队列:没有被及时消费的消息存放的队列,消息没有被及时消费有以下几点原因:1.有消息被拒绝(basic.reject/ basic.n
- @SpringBootApplication的使用1. Spring Boot 的核心1.1. 入口类和 @SpringBootApplic
- 求一个n阶行列式,一个比较简单的方法就是使用全排列的方法,那么简述以下全排列算法的递归实现。首先举一个简单的例子说明算法的原理,既然是递归,
- 目录一、ThreadLocal简介二、ThreadLocal简单使用三、ThreadLocal的实现原理1、set方法源码2、get方法源码
- 前言本篇内容:提示语的国际化返回,自定义多语言。本文使用aop方式,拦截接口返回的数据,进行转换。正文 先看这次示例教
- 前言最近都是Mybatis-Plus系列的小白文,算是对工作中最常使用的框架的细节扫盲。有在学习Mybatis-Plus使用的,可以关注一波
- 本文实例讲述了Android编程实现图片平铺的方法。分享给大家供大家参考,具体如下:1)第一种利用系统提供的api实现Bitmap bitm
- 本文实例讲述了Android弹出窗口实现方法。分享给大家供大家参考,具体如下:直接上代码:/*** 弹窗--新手指引* @param cxt
- Java InputStream的任意拷贝有时候,当我们需要多次使用到同一个InputStream的时候如何实现InputStream的拷贝
- package com.test.html;import com.alibaba.fastjson.JSON;import org.apac