传入图片链接地址,即可下载到第二个参数对应的目录下面
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();
}
}
}
}