/**
* 附件删除后 前端上传图片后点击删除,后端真实删除带有图片视频的文章时调用
*@ param string $attachment 图片地址 可以是完整地址也可以是相对地址
*/
public function alossDelete(string $attachment)
{
$config = get_addon_config("alioss");
if (isset($config['syncdelete'])) {
$endpoint = "http://" . $config['endpoint'];
$attachment = str_replace( ['https://modelimg.oss-cn-shanghai.aliyuncs.com/','http://modelimg.oss-cn-shanghai.aliyuncs.com/'],'',$attachment);
$attachment = ltrim($attachment, '/');
try {
$ossClient = new OssClient($config['app_id'], $config['app_key'], $endpoint);
$ress = $ossClient->deleteObject($config['bucket'], $attachment);
//dump($ress);exit;
} catch (OssException $e) {
$this->error();
}
//如果是服务端中转,还需要删除本地文件
if ($config['uploadmode'] == 'server') {
$filePath = ROOT_PATH . 'public' . str_replace('/', DS, $attachment);
if ($filePath) {
@unlink($filePath);
}
}
//如果附件表中有,则删除
$Mattachment = db('attachment');
if($file_id = $Mattachment->where(['storage'=>'alioss'])->value("id")){
$Mattachment->where(['id'=>$file_id])->delete();
}
}
$this->success();
}
AliOSS删除附件
最新推荐文章于 2023-05-23 15:39:06 发布