多部分文件到文件InputStream

7 java eclipse spring file

如何将a转换MultipartFileFileInputStream内存?

我试过下面,但我面临的错误是

org.springframework.web.multipart.commons.CommonsMultipartFile无法强制转换为java.io.File

我的代码是

FileInputStream fis = new FileInputStream((File)file);
Run Code Online (Sandbox Code Playgroud)

其中file是一个multipart文件

PyT*_*hon 14

除非文件不在文件系统上,否则无法创建FileInputStream的实例.

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

file.transferTo(tempFile);
InputStream stream = new FileInputStream(tempFile);
Run Code Online (Sandbox Code Playgroud)

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

InputStream inputStream =  new BufferedInputStream(file.getInputStream());
Run Code Online (Sandbox Code Playgroud)

  • @KaMaL - 如果您100%确定将来不再需要此文件,则可以删除该文件.但更好的方法是第二种方法,直接通过**InputStream**访问或通过**BufferedInputStream**访问更高效的版本.这样您就可以访问内存中的文件. (3认同)

Ame*_*iye 1

看看MultipartFile

你可以选择:

void    transferTo(File dest)
Run Code Online (Sandbox Code Playgroud)

此方法将接收到的文件传输到给定的目标文件。