file 转换MultipartFile
因为工作中的业务需要,需要将file转换为Spring专有的MultipartFile。
- 过程
- 结论
过程
spring通过MultipartFile来实现文件上传,查看相关的源码后,会发现原理十分简单。
首先,打开MultipartFile,发现这是一个接口,其中定义了一些关于file的处理方法。
看到此接口的实现类有如下几个,分别来看一下。
- 打开StandardMultipartFile,发现这是一个私有内部类,外部类是StandardMultipartHttpServletRequest。然看查看相关调用代码,发现MultipartFile的基本作用,将request中的file封装为StandardMultipartFile,用于后续处理。
- 然后是CommonsMultipartFile,这个类有没有很熟悉?在spring中需要对上传文件大小进行限制时,可以通过在配置文件中对CommonsMultipartFileResolve Bean相关属性进行注入来设置。打开CommonsMultipartFileResolve源码,也确实发现是通过CommonsMultipartFile来处理的。spring Web默认使用CommonsMultipartFile来处理文件上传。
//CommonsFileUploadSupport 是CommonsMultipartResolver的抽象父类
//spring Web默认使用CommonsMultipartFile来处理文件上传
public abstract class CommonsFileUploadSupport {protected MultipartParsingResult parseFileItems(List<FileItem> fileItems, String encoding) {for (FileItem fileItem : fileItems) {if (fileItem.isFormField()) {//无关代码省略} else {// multipart file fieldCommonsMultipartFile file = new CommonsMultipartFile(fileItem);multipartFiles.add(file.getName(), file);}}}}
}
- 列表内容最后看一下MockMultipartFile,发现在spring-test Jar包中,是对MultipartFile的一个简单实现。
结论
MultipartFile是spring中定义的一个接口,file是无法转换为multipartfile的。但是可以定义一个具体类,并实现MultipartFile,用具体类将file进行封装,将file封装为MultipartFile。
如果系统中有spring-test jar包,则可以直接使用MockMultipartFile。
file 转换MultipartFile相关推荐
- 文件上传至将File转换成MultiPartFile
在文件上传业务上需要将文件上传至将File转换成MultiPartFile的时候,我搜索得到采用MockMultipartFile这个类可以轻松的转换. 但是,当我准备使用的时候,坑出现了.它是spr ...
- JAVA 将MultipartFile file转换成为File
public static File MultipartFileToFile(MultipartFile multiFile) {// 获取文件名String fileName = multiFile ...
- java将图片的url转换成File,File转换成二进制流byte
package com.xqy;import java.io.*; import java.net.HttpURLConnection; import java.net.URL; //java将图片的 ...
- File和MultipartFile互转
/*** MultipartFile 转 File** @param multipartFile* @throws Exception*/public static File MultipartFil ...
- File转MultipartFile格式
File转MultipartFile格式 方法一:MultipartFile转成File需要借助org.springframework.mock.web.MockMultipartFile 使用方法为 ...
- File转换成MultiPartFile
通过FileItem对象获得CommonsMultipartFile对象再转换成MultiPartFile对象 MultipartFile mfile = new CommonsMultipartFi ...
- Java 将File转换为MultipartFile类型
首先转换时需要用到commons-fileupload-1.3.2.jar包,若项目中没有就先加入jar包,实现代码如下: 1.根据File创建FileItem import java.io.File ...
- vue 文件转换二进制_vue项目将file转换成二进制流
前端在新增数据时,需要将附件和表单数据一起上传,此时需要将文件转换成二进制流传给后端.记录将文件转换成二进制流 ref="uploadProduct" class="up ...
- File 转 MultipartFile
前言:很多朋友都喜欢用spring的MultipartFile传文件,不过也确实强大.但如果我们收到的是file该怎么办?我们这就来解决 直接来例子 moke的jar包地址: https://mvnr ...
最新文章
- 安装mayavi和VTK库的血泪史
- eureka服务下线事件监听(自定义处理逻辑)
- 使用HttpMessageConverter实现HTTP的序列化和反序列化
- 高效万进制——蓝桥杯|HDOJ 1002 大数加法——30行代码AC
- 程序员利用Python破解老婆撤回的消息,这样竟然还有老婆?
- 二叉树题目----6 二叉树的最近公共祖先 AND 二叉树搜索树转换成排序双向链表
- 高密自智,体小量大,希捷Exos Corvault存储系统为数据洞察赋能
- 16个简单实用的.htaccess技巧
- 在保存Bitmap的时候出现“GDI出现一般性错误”
- Linux操作系统基础知识学习
- 【微信小程序制作模板套用】小程序模板如何合理选择?
- 计算机玩游戏重启,为什么我的电脑玩游戏的时候会不定时的自动重启?
- UE4 替换文件尝试解决 光照构建失败 Lighting build failed. Swarm failed to kick off
- html自定义图例,自定义 highcharts 图例之 symbol
- Windows系统安全配置
- C++ using的用法
- 2021华为软挑部分答疑——哪些你有错却总是找不到的地方,我来带你找啦(含标准输入代码)
- Warpspeed 2021 DFINITY×IAF黑客松Demo Day落幕,10支队伍获奖
- Java编程思想读书笔记——多态
- 北京市委宣传部所属事业单位招聘工作人员公告-北京市委-宣传部-事业单位