public List<String> upload(MultipartFile[] files, float scale, double quality) throws IOException {
// 判断图片是否符合规范
// 判断是否上传了图片
if (files.length == 0 || files == null) {
return new ArrayList<>();
}
// 图片真实地址
List<String> paths = new ArrayList<>();
// 判断图片类型是否符合
for (MultipartFile file : files) {
System.out.println("轮询的图片信息---->"+file+"==="+file.isEmpty());
// 获取图片的类型
String type = FileTypeUtil.getType(file.getInputStream());
Assert.isTrue(!file.isEmpty(), "图片错误!");
Assert.isTrue(Arrays.asList("png", "svg", "jpg", "jpeg").contains(type.toLowerCase()), "不支持图片类型");
// 图片压缩
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Img.from(file.getInputStream())
.scale(scale)// 缩小比例
.setQuality(quality) // 压缩比例
.write(byteArrayOutputStream);
// 图片上传
String key = UUID.randomUUID().toString();
// 图片的路径
String path ="image/" + key + "." + type;
PutObjectRequest objectRequest = new PutObjectRequest(bucketName,path,new ByteArrayInputStream(byteArrayOutputStream.toByteArray()),null);
// 图片真实返回地址
// https://chengliang-1322565123.cos.ap-nanjing.myqcloud.com/image%2F4.jpg
// https://chengliang-1322565123.cos.ap-nanjing.myqcloud.com/image/1b6505ff-bf76-415c-9b73-fec9e60f91a0.jpg
String realPath = "https://" + this.bucketName + ".cos." + this.region + ".myqcloud.com/" + path;
System.out.println("图片相对地址------>" + path);
System.out.println("图片真实地址------>" + realPath);
paths.add(realPath);
}
return paths;
}
访问的结果如下
。
相似问题