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

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