多部分文件到文件输入流

2022-09-03 17:40:27

如何将 a 转换为 内存中?MultipartFileFileInputStream

我已尝试在下面,但我面对的错误是

org.springframework.web.multipart.commons.CommonsMultipartFile 不能 cast to java.io.File

我的代码是

FileInputStream fis = new FileInputStream((File)file);

其中文件是多部分文件


答案 1

您无法创建 FileInputStream 的实例,除非您的文件不在文件系统上。

您必须首先将多部分文件保存在服务器上的临时位置,使用

file.transferTo(tempFile);
InputStream stream = new FileInputStream(tempFile);

但是多部分文件也可以简单地通过基本的流方法读取,例如

InputStream inputStream =  new BufferedInputStream(file.getInputStream());

答案 2

尝试使用:

MultipartFile uploadedFile = ((MultipartHttpServletRequest)request).getFile('file_name')
InputStream inputStream = new ByteArrayInputStream(uploadedFile?.getBytes())