PHP 使用 OSS 批量删除图片
生活随笔
收集整理的這篇文章主要介紹了
PHP 使用 OSS 批量删除图片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、控制器 OssImageController.php(不必關注此層)
<?php declare(strict_types = 1); namespace app\controllers; use app\services\OssImageService; class OssImageController extends BaseController {/*** oss 批量刪除圖片** @throws null*/public function actionDelImage(){$data = OssImageService::service()->batchDelImage($this->params);$this->response([], $data['status'], $data['msg']);} }?
2、service 層 OssImageService.php(業務實現層)
<?php declare(strict_types = 1); namespace app\services; use app\extensions\AliOss; use app\extensions\Helper; class OssImageService extends BaseService {/*** 批量刪除oss圖片** @param array $params* @return array* @throws null*/public function batchDelImage(array $params){/*$params['images'] = ['https://hk-server.oss-cn-hongkong.aliyuncs.com/blog/article-in/2018-08-23/010494376.jpg','https://hk-server.oss-cn-hongkong.aliyuncs.com/blog/article-in/2018-08-23/011832527.jpg'];*/if (!isset($params['images']) || empty($params['images'])) {return Helper::msg(0, '請選擇需要刪除的圖片');}if (!is_array($params['images'])) {return Helper::msg(0, '刪除圖片格式錯誤,請傳數組格式');}$ossHttpUrl = 'https://'.AliOss::bucket.'.'.AliOss::endpoint.'/';$ossHttpsUrl = 'http://'.AliOss::bucket.'.'.AliOss::endpoint.'/';$objectArray = $params['images'];// 將每一個鏈接的協議+bucketName+endpoint替換成'' (即去掉這部分string)foreach ($objectArray as &$v) {$v = str_replace($ossHttpUrl, '', $v);$v = str_replace($ossHttpsUrl, '', $v);}$ossClient = AliOss::getOssClient();$bucketName = AliOss::getBucketName();// 執行批量刪除$ossClient->deleteObjects($bucketName, $objectArray);return Helper::msg(1, '刪除素材圖片成功');} }?
3、說明
雖然阿里云 oss 提供了批量刪除文件的方法,但這里仍然不建議使用,因為存在著操作風險,建議刪除文件的操作還是在控制臺手動操作。
?
注:免費領取阿里云產品優惠券:https://www.haveyb.com/aliyun
?
?
?
總結
以上是生活随笔為你收集整理的PHP 使用 OSS 批量删除图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 使用 OSS上传文件
- 下一篇: h5外卖源码php_校园食堂外卖APP走