导入pom
<!--File转MultipartFile需要test包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.9.RELEASE</version>
<scope>compile</scope>
</dependency>
File转成MultipartFile
File file = new File(filePath+fileName);
FileInputStream fileInputStream = new FileInputStream(file);
String[] fileNameSplit = fileName.split("\\.");
MultipartFile multipartFile = new MockMultipartFile(fileNameSplit[0], fileName, "application/vnd.ms-excel", fileInputStream);
MultipartFile类一般用于接收上传的文件,但有时我们需要从本地选取文件,从File转成MultipartFile,
MockMultipartFile是MultipartFile的一个实现类,我们可以把File转成流,通过MockMultipartFile进行转换,
MockMultipartFile参数:
第一个参数:需要处理的文件名字(不包含后缀名)
第二个参数:需要处理的文件名字(包含后缀名)
第三个参数:content-type(需要处理的文件类型 --application/vnd.ms-excel是excel的类型)
第四个参数:文件流
注意:我在处理excel的时候想把本地的xls从File转成MultipartFile,转换不会出错,但进行excel解析的时候就会报错,Your stream was neither an OLE2 stream, nor an OOXML stream
,是因为我是从swagger进行访问链接下载的,这样下载的excel是错误的,应该从浏览器进行访问下载,因为自己的失误导致浪费很多时间,但凡打开excel看一下就会发现全是乱码,所以一定要先确认文件是否正确,避免接下来的处理有误
MultipartFile转成File
MultipartFile multipartFile ;//以赋值的MultipartFile
File file = new File(ResourceUtils.getURL("classpath:").getPath() + "sql\\"+name);
multipartFile.transferTo(file);
这个就是在服务器创建一个File文件,把MultipartFile转换成File