有時(shí)候上傳文件時(shí),我們會(huì)涉及到操作上傳文件實(shí)體MultipartFile 做一些IO操作,但是有時(shí)無法操作文件,只能轉(zhuǎn)換為file才可以。
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
* @Description:
* @date 2019/9/23 10:21
*/
public class MultipartFileToFileUtils {
/**
* MultipartFile 轉(zhuǎn) File
* @param file
* @throws Exception
*/
public static File multipartFileToFile(MultipartFile file ) throws Exception {
File toFile = null;
if(file.equals("")||file.getSize()<=0){
file = null;
}else {
InputStream ins = null;
ins = file.getInputStream();
toFile = new File(file.getOriginalFilename());
toFile = inputStreamToFile(ins, toFile);
ins.close();
}
return toFile;
}
private static File inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
return file;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
/**
* 圖片上傳
*
* @param file 圖片文件
* @return 圖片地址
*/
@Override
public String uploadPicture(MultipartFile file) throws Exception {
//將MultipartFile 轉(zhuǎn)換為File
File localFile = MultipartFileToFileUtils.multipartFileToFile(file);
String imgUrl = uploadUtils.uploadImg(localFile);
log.info("web upload image url:{}", imgUrl);
return imgUrl;
}