我正在使用以下方法将MultipartFile转换为File:
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;
}
Wich工作正常,但对于大文件,我遇到了以下异常:
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;
}