首先在maven里引入俩个依赖(第一个用于将File文件类型转换为MultipartFile,第二个用于生成随机数)
<!--文件上传重命名依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-mock</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.3.1</version>
</dependency>
其次是代码实现:
//文件重命名
String originalFilename = image.getOriginalFilename();
String[] filename = originalFilename.split("\\.");//拆后缀
//临时文件
File file=File.createTempFile(filename[0], "."+filename[1]);
image.transferTo(file);
//重命名
String newName = "u_"+user.getPhone()+RandomUtil.randomString(10)+(new Date()).getTime()+"."+filename[1];
file = FileUtil.rename(file, newName, true, true);
InputStream inputStream = new FileInputStream(file);
//File转换成MultipartFile
image = new MockMultipartFile(file.getName(), inputStream);
//程序退出后删除临时文件
file.deleteOnExit();
重命名之后 image.getOriginalFilename();是获取不到名字的,注意要将源文件的后缀拼回新文件。