Java将MultipartFile转换为File以获取大文件

我正在使用以下方法将MultipartFile转换为文件:

public 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;
}

哪个工作没问题但是对于大文件我得到了这个例外:

java.lang.OutOfMemoryError: Java heap space

我添加了更多堆但仍然有错误.

那么是否有一种编程方式来解决这个问题,可能会在转换时将多部分文件拆分为较小的块,但我不确定如何对其进行编码.

任何帮助或建议将不胜感激.

解决方法:

MultipartFile是否属于Spring的包org.springframework.web.multipart?如果是这样,你可以做到

  public File convert(MultipartFile file) throws IOException {
    File convFile = new File(file.getOriginalFilename());
    convFile.createNewFile();
      try(InputStream is = file.getInputStream()) {
        Files.copy(is, convFile.toPath()); 
      }
    return convFile;
  }
上一篇:Java,MultiPart:确定上传的多部分是否是一种图像


下一篇:javascript – Ajax上传文件到内容类型为Multipart的GoLang服务器