传入图片链接地址,即可下载到第二个参数对应的目录下面
if(copy(trim($img_url), base_path().'/public/' . basename($img_url))) { echo "远程图片下载成功";die; }使用场景,我要把一张表的所有logo图片存到oss上 然后再把表中的路径改成自己的阿里云oss的url
代码:
$itemCategory = ItemCategory::where(['status'=>1])->get(); foreach($itemCategory as $v){ if($v->id!=26 && isset($v->logo)&&$v->logo){ $img_url = $v['logo']; $baseName = basename($img_url); $local_name = base_path().'/public/' .$baseName; if(copy(trim($img_url), $local_name)) { // echo "远程图片下载成功";die; $ossFileName = implode('/', ['upload/image', date('Ymd'), $baseName]); try { $config = config('services.oss'); //实例化对象 将配置传入 $ossClient = new OssClient($config['access_key'], $config['secret_key'], $config['endpoint']); $result = $ossClient->uploadFile($config['bucket'], $ossFileName, $local_name); $arr = [ 'oss_url' => $result['info']['url'], //上传资源地址 'relative_path' => $ossFileName //数据库保存名称(相对路径) ]; $v->logo = $arr['relative_path']; $v->save(); } catch (OssException $e) { return $e->getMessage(); } } } }