File类型转MultipartFile类型

本文介绍如何将File对象转换为Spring框架中的MultipartFile对象,通过创建CommonsMultipartFile实例实现文件上传功能,包括代码示例和Maven依赖配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

multipartfile是spring定义的一个接口,file是无法转换为multipartfile的。但是可以自己实现一个multipartfile具体类,在这个类中将file封装。

  • 此处截取一个multipartfile接口的实现类CommonsMultipartFile的部分代码及构造方法片段
    在这里插入图片描述
    所以我们可用通过创建CommonsMultipartFile对象来转MultipartFile
  • maven依赖
<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.1</version>
</dependency>
  • 方法
public  MultipartFile FileToMultipartFile(File oneFile) throws IOException
	{
		FileItem fileItem = new DiskFileItem("mainFile", Files.probeContentType(oneFile.toPath()), false, oneFile.getName(), (int) oneFile.length(), oneFile.getParentFile());
		InputStream input = null;
		OutputStream os = null;
		MultipartFile multipartFile = null;
		try {
			input = new FileInputStream(oneFile);
		    os = fileItem.getOutputStream();
		    IOUtils.copy(input, os);
		    multipartFile = new CommonsMultipartFile(fileItem);
		    input.close();
		    os.close();
		    return multipartFile;
		} catch (IOException ex) {
		     throw new RuntimeException();
		} finally {
            if(input != null){
                try {
                	input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }  
            if(os != null){
            	try {
            		os.close();
            	} catch (IOException e) {
            		e.printStackTrace();
            	}
            }  
        }
	}

亲测可用,希望对大家有帮助。如有疑问,欢迎留言。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值