????在使用SpringMVC上傳文件的時候,前臺傳到后臺的文件可以是CommonsMultipartFile類型的,也可以是MultipartFile類型,但都無法直接轉化為File類型。
? ? SpringMVC提供了一種方法可以將傳過來的文件直接上傳到File指定的文件路徑下(new File(path)),MultipartFile.transferTo(File),這樣就可以直接將前臺傳過來的文件直接存在服務器指定的路徑下。
????通過這種思路,transferTo()的參數需要指定一個File,那意味這需要指定路徑,將會在指定的路徑下生成文件,那么將這個文件通過new File(path),得到的就是File類型的了。
? ? 在不希望設置路徑,也不希望生成文件的情況下可以使用以下兩種方法來轉換:
public File convert(MultipartFile file){
? ? File convFile = new File(file.getOriginalFilename());? ?
????convFile.createNewFile();
? ? FileOutputStream fos = new FileOutputStream(convFile);
? ? fos.write(file.getBytes());? ?
????fos.close();
? ? return convFile;
}
public File multipartToFile(MultipartFile multipart) throws IllegalStateException, IOException{
????File convFile = new File( multipart.getOriginalFilename());
????multipart.transferTo(convFile);
????return convFile;
}
第二種方式相對于第一種較為簡單,也更為較快。