傳入圖片鏈接地址,即可下載到第二個參數對應的目錄下面
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();
}
}
}
}