修改时删除OSS服务器老图片:
@Override
@Override
public void updateDrug(Drug drug) {
//判断新图片和老图片都不为null
if(StringUtils.isNotBlank(drug.getImg()) && StringUtils.isNotBlank(drug.getPhoto()) && !drug.getImg().equals(drug.getPhoto())){
//删除老图片
OSSUtil.deleteFile(drug.getImg());
}
drugMapper.updateById(drug);
}
删除时删除OSS服务器图片:
@Override
public void updateDrug(Drug drug) {
//判断新图片和老图片都不为null
//img为自定义变量,详情请点击
if(StringUtils.isNotBlank(drug.getImg()) && StringUtils.isNotBlank(drug.getPhoto())){
//删除老图片
OSSUtil.deleteFile(drug.getImg());
}
drugMapper.updateById(drug);
}
注:img为自定义变量,详情请点击
实体类:
@TableField(exist = false)
private String img;
前端
data(){
return {
img;
}
}
批量删除时删除OSS服务器图片 :例1
@Override
public void deleteBachDrug(Integer[] ids) {
//批量时删除图片
List<Drug> drugs = drugMapper.selectBatchIds(Arrays.asList(ids));
for (int i = 0; i < drugs.size(); i++) {
//判断drugs.get(i).getPhoto()不为空
if(StringUtils.isNotBlank(drugs.get(i).getPhoto())){
OSSUtil.deleteFile(drugs.get(i).getPhoto());
}
}
drugMapper.deleteBatchIds(Arrays.asList(ids));
}
批量删除时删除OSS服务器图片 :例2
APP.Vue页面
//批量删除
openAelete(row){
var _this = this;
var ids = [];
var photos=[];
row.forEach(element =>{
ids.push(element.id);
photos.push(element.photo);
})
this.$confirm('确定删除这'+row.length+'条数据吗?','提示').then(() =>{
this.$axios.post("http://localhost:8080/drug/deleteBachDrug?ids="+ids+"&photos="+photos.toString()).then(dara =>{
_this.$message.success("删除成功")
_this.queryDrug();
})
}).catch(()=>{
_this.$message.success("删除失败")
})
}
Controller层代码:
//批量删除
@RequestMapping("deleteBachDrug")
public void deleteBachDrug(Integer[] ids,String[] photos) {
drugService.deleteBachDrug(ids,photos);
}
ServiceImpl类代码:
@Override
public void deleteBachDrug(Integer[] ids,String[] photos) {
//批量时删除图片
if(photos!=null){
for (String url : photos) {
if(StringUtils.isNotBlank(url)){
OSSUtil.deleteFile(url);
}
}
}
drugMapper.deleteBatchIds(Arrays.asList(ids));
}
工具类代码:
public class OSSUtil {
// 阿里云oss上传文件相关属性值
// 阿里云API的外网域名
public static final String ENDPOINT = "oss-cn-beijing.aliyuncs.com";
// 阿里云API的密钥
public static final String ACCESS_KEY_ID = "LTAI4Fzm3c6EmUexCHLvZNcm";
// 阿里云API的密钥Access Key Secret
public static final String ACCESS_KEY_SECRET = "b8OrjTpYWW3sZSlimy4sxr2WJuNX09";
// 阿里云API的bucket名称
public static final String BACKET_NAME = "jjjqqq";
// 阿里云API的文件夹名称
public static final String FOLDER = "photo/";
public static final String URl = "https://jjjqqq.oss-cn-beijing.aliyuncs.com/";
public static void deleteFile(String fileName){
OSSClient ossClient = new OSSClient(ENDPOINT,ACCESS_KEY_ID,ACCESS_KEY_SECRET);
//给fileName重新赋值
String replace = fileName.replace(URl, "");
//删除
ossClient.deleteObject(BACKET_NAME,replace);
ossClient.shutdown();
}
}
需要的jar
<!-- Oss需要的jar包-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.8.0</version>
</dependency>