@Service
public class UploadServiceImpl implements UploadService {
//保存日志的对象
private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
// 允许存储的文件类型白名单
private static final List<String> suffixes = Arrays.asList("image/png", "image/jpeg");
public String upload(MultipartFile file) {
try {
// 校验文件类型
String type = file.getContentType();
if (!suffixes.contains(type)) {
//此处的{}相当于字符串的占位符
logger.info("上传失败,文件类型不匹配:{}", type);
return null;
}
// 校验图片内容
BufferedImage image = ImageIO.read(file.getInputStream());
if (image == null) {
logger.info("上传失败,文件内容不符合要求");
return null;
}
// 生成保存目录
File dir = new File("G:\\LeYou\\upload");
if (!dir.exists()) {
dir.mkdirs();
}
//保存图片,第一个参数是路径,第二个参数是文件名,使用MultipartFile file获取源文件文件名
file.transferTo(new File(dir, file.getOriginalFilename()));
// 拼接图片地址,
String url = "http://image.leyou.com/upload/" + file.getOriginalFilename();
return url;
} catch (Exception e) {
return null;
}
}
}
原文:https://www.cnblogs.com/treasury/p/12872321.html