MultipartFile

在使用SpringMVC上传文件的时候,前台传到后台的文件可以是CommonsMultipartFile类型的,也可以是MultipartFile类型,但都无法直接转化为File类型。

SpringMVC提供了一种方法可以将传过来的文件直接上传到File指定的文件路径下(new File(path)),MultipartFile.transferTo(File),这样就可以直接将前台传过来的文件直接存在服务器指定的路径下。

通过这种思路,transferTo()的参数需要指定一个File,那意味这需要指定路径,将会在指定的路径下生成文件,那么将这个文件通过new File(path),得到的就是File类型的了。

在不希望设置路径,也不希望生成文件的情况下可以使用以下两种方法来转换:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;

}

1
2
3
4
5
6
7
8
9
public File multipartToFile(MultipartFile multipart) throws IllegalStateException, IOException{

File convFile = new File( multipart.getOriginalFilename());

multipart.transferTo(convFile);

return convFile;

}

第二种方式相对于第一种较为简单,也更为较快。

作者:凉初透的风
链接:https://www.jianshu.com/p/9262ef452abe
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。