php laravel 将任意文件地址下载到本地再长传到OSS

5 篇文章 0 订阅

 

传入图片链接地址,即可下载到第二个参数对应的目录下面

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();
                    }
                }
            }
        }

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值