SpringMVC文件上传之MultipartFile转File

简介: 版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/79203168 简介 ...
版权声明:本文为博主原创文章,如需转载,请标明出处。 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.方法好不好用,实践之后才知道,程序猿可在这些方法的基础之上封装适合自己的方法;

相关文章
|
前端开发 应用服务中间件
SpringMVC 文件上传 消息 Required request part ‘file‘ is not present描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者
SpringMVC 文件上传 消息 Required request part ‘file‘ is not present描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者
3210 0
|
前端开发 Java 应用服务中间件
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
133 0
|
前端开发 Java Apache
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
224 0
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
|
XML 前端开发 Java
SpringMVC的架构有什么优势?——异常处理与文件上传(五)
SpringMVC的架构有什么优势?——异常处理与文件上传(五)
|
前端开发 JavaScript Java
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
480 1
|
存储 前端开发 Java
学会Spring MVC文件上传、下载和JRebel的使用
学会Spring MVC文件上传、下载和JRebel的使用
115 0
学会Spring MVC文件上传、下载和JRebel的使用
|
SQL JavaScript Java
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
116 0
|
存储 前端开发 Java
SpringMVC的文件上传&文件下载&多文件上传---详细介绍
SpringMVC的文件上传&文件下载&多文件上传---详细介绍
245 0
|
SQL 缓存 前端开发
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
109 0
|
前端开发 Java 开发工具
一篇博客教会您SpringMVC文件上传、下载,多文件上传及工具jrebel的使用
一篇博客教会您SpringMVC文件上传、下载,多文件上传及工具jrebel的使用
133 0