File与MultipartFile互转

导入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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章