SpringMVC中MultipartFile转File的两种方式

作者:扯吧 时间:2023-08-18 20:25:00 

在spring上传文件中,一般都使用了MultipartFile来接收,但是有需要用到File的地方,这里只介绍两种转为File的方法,当然也有一些其他的方法,我试了有些错误,所以就不提了;

  • transferTo()

  • org.apache.commons.io.FileUtils.copyInputStreamToFile()

代码如下:

public void upload(@RequestParam(value = "file") MultipartFile file) {
        if (file != null) { 
            try {
                String fileRealName = file.getOriginalFilename();//获得原始文件名; 
                int pointIndex =  fileRealName.lastIndexOf(".");//点号的位置     
                String fileSuffix = fileRealName.substring(pointIndex);//截取文件后缀  
                String fileNewName = DateUtils.getNowTimeForUpload();//新文件名,时间戳形式yyyyMMddHHmmssSSS
                String saveFileName = fileNewName.concat(fileSuffix);//新文件完整名(含后缀) 
                String filePath  = "D:\\FileAll" ;
                File path = new File(filePath); //判断文件路径下的文件夹是否存在,不存在则创建
                if (!path.exists()) {
                    path.mkdirs();
                }            
                File savedFile = new File(filePath);
                boolean isCreateSuccess = savedFile.createNewFile(); // 是否创建文件成功
                if(isCreateSuccess){      //将文件写入      
                    //第一种             
                    file.transferTo(savedFile); 
                     //第二种
                    savedFile = new File(filePath,saveFileName);
                    // 使用下面的jar包
                    FileUtils.copyInputStreamToFile(file.getInputStream(),savedFile);
                }                              
            } catch (Exception e) {
                e.printStackTrace();                
            }
        }else {
            System.out.println("文件是空的");
        }
    }

附commons-io jar包maven地址:点击下载 commons-io-2.4.jar

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>2.4</version>
</dependency>

来源:https://blog.csdn.net/qq_35564978/article/details/81701518

标签:SpringMVC,MultipartFile,转,File
0
投稿

猜你喜欢

  • 一篇文章带你了解Maven的生命周期

    2022-04-22 10:40:22
  • 浅谈基于SpringBoot实现一个简单的权限控制注解

    2022-01-23 16:42:47
  • spring boot 全局异常处理方法汇总

    2021-07-06 22:44:04
  • Spring动态配置计时器触发时间的实例代码

    2023-01-20 07:30:01
  • 详解springboot之jackson的两种配置方式

    2021-11-03 11:01:21
  • OpenCV Java实现人脸识别和裁剪功能

    2022-08-21 01:47:23
  • Android四大组件之BroadcastReceiver详解

    2023-03-17 02:55:08
  • java文件的重命名与移动操作实例代码

    2022-06-16 04:18:12
  • Flutter开发Mac桌面应用实现自动提取生成视频字幕文件

    2023-05-11 05:25:58
  • Android Bitmap和Drawable的对比

    2021-11-16 06:03:41
  • Java中数组在内存中存放原理的讲解

    2022-12-10 03:48:35
  • C# PDF Page操作设置页面切换按钮的方法

    2021-11-18 04:33:43
  • Android项目实现短信的发送、接收和对短信进行拦截

    2021-06-14 06:59:26
  • C#针对xml文件转化Dictionary的方法

    2021-09-12 12:33:48
  • java8新特性之日期时间API

    2023-06-20 09:15:50
  • Java中二叉树数据结构的实现示例

    2023-08-07 03:10:58
  • JavaWeb如何实现禁用浏览器缓存

    2021-09-13 01:27:45
  • mybatis createcriteria和or的区别说明

    2021-09-27 09:20:40
  • Android中使用七牛云存储进行图片上传下载的实例代码

    2023-12-17 11:56:35
  • 详解Android TextView属性ellipsize多行失效的解决思路

    2022-03-02 16:00:32
  • asp之家 软件编程 m.aspxhome.com