业务场景:ssm框架 上传文件到应用服务器过程中要传到专有的文件服务器并返回url进行其他操作。
业务难点:MultipartFile转File类型
解决代码:
/**
* MultipartFile 转换成File
*
* @param multfile 原文件类型
* @return File
* @throws IOException
*/
private File multipartToFile(MultipartFile multfile) throws IOException {
CommonsMultipartFile cf = (CommonsMultipartFile)multfile;
//这个myfile是MultipartFile的
DiskFileItem fi = (DiskFileItem) cf.getFileItem();
File file = fi.getStoreLocation();
//手动创建临时文件
if(file.length() < CommonConstants.MIN_FILE_SIZE){
File tmpFile = new File(System.getProperty("java.io.tmpdir") + System.getProperty("file.separator") +
file.getName());
multfile.transferTo(tmpFile);
return tmpFile;
}
return file;
}
注意事项:上传文件大小若小于2048,则不会生成临时文件
Solver : fage