MultipartFil上传图片文件
程序员文章站
2022-06-25 18:22:44
...
@Component
public class UploadUtils {
Logger log = LoggerFactory.getLogger(getClass());
// 图片上传地址
@Value("${cn.aiplate.filePath}")
private String aiplateFilePath;
// 匹配后缀图片格式
private final List<String> imgSuffixList = Arrays.asList(".JPEG", ".PNG", ".JPG", ".GIF", ".BMP");
/**
* <p>图片上传</p>
* @data 2019年11月22日
* @param file
* @return
*/
public R uploadPic (MultipartFile file) {
if (file.isEmpty()) {
return R.error("并未上传文件");
}
// 获取文件后缀格式
String extension = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
log.debug("上传文件格式:" + extension);
// 如果格式正确
if (imgSuffixList.contains(extension.toUpperCase())) {
String fileDir = "";
// 文件名称
String fileName = UUID.randomUUID() + extension;
// 判断目录是否存在 不存在则创建指定的目录
File f = new File(aiplateFilePath + fileDir);
if (!f.exists()) {
f.mkdirs();
}
String longName = aiplateFilePath + fileDir + File.separator + fileName;
try {
file.transferTo(new File(longName));
} catch (Exception e) {
e.printStackTrace();
return R.error("系统错误!");
}
return R.ok().put(Constant.R_DATA, fileName);
} else {
return R.error("格式只能为:" + imgSuffixList);
}
}
}