删除讲师图像实现

161 篇文章 16 订阅

一 service-oss

1 FileService接口

/**
* 阿里云oss 文件删除
* @param url 文件的url地址
*/
void removeFile(String url);

2 FileService实现

/**
* 阿里云oss 文件删除
*
* @param url 文件的url地址
*/
@Override
public void removeFile(String url) {
    // 读取配置信息
    String endpoint = ossProperties.getEndpoint();
    String keyid = ossProperties.getKeyid();
    String keysecret = ossProperties.getKeysecret();
    String bucketname = ossProperties.getBucketname();
    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(endpoint, keyid, keysecret);
    // 删除文件。
    // https://<bucketname>.<endpoint>/
    String host = "https://" + bucketname + "." + endpoint + "/";
    String objectName = url.substring(host.length());
    ossClient.deleteObject(bucketname, objectName);
    // 关闭OSSClient。
    ossClient.shutdown();
}

3 FileController

/**
* 功能描述:文件删除
*
* @param url 待删除文件的url
* @return R 返回给调用者的消息
* @author cakin
* @date 2020/11/29
*/
@ApiOperation(value = "文件删除")
@DeleteMapping("remove")
public R removeFile(@ApiParam(value = "要删除的文件url路径", required = true) @RequestBody String url) {
    fileService.removeFile(url);
    return R.ok().message("文件删除成功");
}

二 service-edu

1 创建远程调用接口

/**
* 功能描述:远程调用OSS服务删除文件图像
*
* @author cakin
* @date 2020/11/29
* @param url 待删除的文件URL
* @return R 返回给控制器的消息
*/
@DeleteMapping("/admin/oss/file/remove")
R removeFile(@RequestBody String url);

2 调用远程方法

接口

/**
* 功能描述:根据讲师id删除图像
*
* @author cakin
* @date 2020/11/29
* @param id 讲师id
* @return boolean 是否删除成功
*/
boolean removeAvatarById(String id);

实现

/**
* 功能描述:根据讲师id删除图像
*
* @param id 讲师id
* @return boolean 是否删除成功
* @author cakin
* @date 2020/11/29
*/
@Override
public boolean removeAvatarById(String id) {
    // 根据id获取讲师avatar 的 url
    Teacher teacher = baseMapper.selectById(id);
    if (teacher != null) {
        String avatar = teacher.getAvatar();
        if (!StringUtils.isEmpty(avatar)) {
            R r = ossFileService.removeFile(avatar);
            return r.getSuccess();
        }
    }
    return false;
}

3 controller层

/**
* 功能描述:根据id删除讲师
*
* @author cakin
* @date 2020/11/29
* @param id 讲师id
* @return R 返回给前端的消息
*/
// @ApiOperation:定义在方法上
@ApiOperation(value = "根据ID删除讲师", notes = "根据ID删除讲师,逻辑删除")
@DeleteMapping("remove/{id}")
// @ApiParam:定义在参数上
public R removeById(@ApiParam(value = "讲师ID", required = true) @PathVariable String id) {
    // 删除讲师头像
    teacherService.removeAvatarById(id);
    // 删除讲师
    boolean result = teacherService.removeById(id);
    if (result) {
        return R.ok().message("删除成功");
    } else {
        return R.error().message("数据不存在");
    }
}

三 前端

前端src/request.js修改超时时间

// 创建axios实例
const service = axios.create({
  baseURL: process.env.BASE_API, // api 的 base_url
  timeout: 12000 // 请求超时时间
})

四 测试

删除成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值