How to convert a MultipartFile to File?

    在使用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;

}


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容