java:File与MultipartFile互转

CSDN 2024-09-18 10:05:03 阅读 81

1 概述

当我们在处理文件上传的功能时,通常会使用MultipartFile对象来表示上传的文件数据。然而,有时候我们可能已经有了一个File对象,而不是MultipartFile对象,需要将File对象转换为MultipartFile对象进行进一步处理。

在Java中,File对象表示文件在本地文件系统中的引用,而MultipartFile对象是Spring框架提供的用于处理文件上传的接口。MultipartFile接口提供了许多有用的方法,例如获取文件名、获取文件内容、获取文件大小等。

2 代码示例

2.1 引入依赖

<code><!--File转MultipartFile需要test包-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>5.1.9.RELEASE</version>

<scope>compile</scope>

</dependency>

2.2 MultipartFile转File

public static File convert(MultipartFile file) throws IOException {

File convFile = new File(file.getOriginalFilename());

convFile.createNewFile();

FileOutputStream fos = new FileOutputStream(convFile);

fos.write(file.getBytes());

fos.close();

return convFile;

}

2.3 File转MultipartFile

//file 转换为 MultipartFile

private MultipartFile getMulFileByPath(String filePath)

{

FileItemFactory factory = new DiskFileItemFactory(16, null);

String textFieldName = "textField";

int num = filePath.lastIndexOf(".");

String extFile = filePath.substring(num);

FileItem item = factory.createItem(textFieldName, "text/plain", true,

"MyFileName" + extFile);

File newfile = new File(filePath);

int bytesRead = 0;

byte[] buffer = new byte[8192];

try

{

FileInputStream fis = new FileInputStream(newfile);

OutputStream os = item.getOutputStream();

while ((bytesRead = fis.read(buffer, 0, 8192))

!= -1)

{

os.write(buffer, 0, bytesRead);

}

os.close();

fis.close();

}

catch (IOException e)

{

e.printStackTrace();

}

MultipartFile mfile = new CommonsMultipartFile(item);

return mfile;

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。