在使用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;
}
第二种方式相对于第一种较为简单,也更为较快。
网友评论