天天看点

SpringMVC文件上传之MultipartFile转File

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/79203168

简介

  1.在使用springmvc作为项目框架的实践中,很多时候,我们都需要进行文件的上传和下载,但springmvc内置的MultipartFile文件类型有时候并不符合我们的操作要求,所以有时候会很麻烦;

  2.本篇博客的重点放在:将MultipartFile文件类型转换成我们熟练操作的File文件类型:

实例

/**
 * SpringMVC文件上传之MultipartFile转File
 * @author hqc
 *
 */
@Service
@Transactional(readOnly = true)
public class InformationService {
    /**
     * MultipartFile转File
     * @param tempfile
     * @return
     */
    public void inforManaAdd(HttpServletRequest request,MultipartFile multipartfile) throws IOException {

        //方法1:在指定目录,生成临时文件,然后再转换
        if(!multipartfile.isEmpty()){

            //在根目录下创建一个tempfileDir的临时文件夹
            String contextpath = request.getContextPath()+"/tempfileDir";
            File f = new File(contextpath); 
            if(!f.exists()){
                f.mkdirs();
            }

            //在tempfileDir的临时文件夹下创建一个新的和上传文件名一样的文件
            String filename = multipartfile.getOriginalFilename();
            String filepath = contextpath+"/"+filename;
            File newFile = new File(filepath);

            //将MultipartFile文件转换,即写入File新文件中,返回File文件
            CommonsMultipartFile commonsmultipartfile = (CommonsMultipartFile) multipartfile;
            File file = commonsmultipartfile.transferTo(newFile);
            System.out.println("转换之后的文件:"+file);

            //如果不需要File文件可删除
            /*if(file.exists()){
                file.delete();
            }*/
        }

        //方法2:不生成临时文件,直接转换
         if(!multipartfile.isEmpty()){
            CommonsMultipartFile commonsmultipartfile = (CommonsMultipartFile) multipartfile;
            DiskFileItem diskFileItem = (DiskFileItem) commonsmultipartfile.getFileItem();  
            File file = diskFileItem.getStoreLocation();
            System.out.println("转换之后的文件:"+file);

            //如果不需要File文件可删除
            /*if(file.exists()){
                file.delete();
            }*/         
         }
    }
}
           

总结

  1.MultipartFile转File的方法是有很多种的,上面只介绍两种基础简单的,程序猿可按需获取;

  2.方法好不好用,实践之后才知道,程序猿可在这些方法的基础之上封装适合自己的方法;

继续阅读