zoukankan      html  css  js  c++  java
  • 图片保存本地,上传阿里云,保存该图片 在阿里云的 路径 到 本地数据库

    #清洗用户微信头像
    public function actionAvatar()
    {


    $wechatParams = Yii::$app->params['wechat'];

    $this->wechatParams = $wechatParams[$this->uniacid];

    $app = new Application( $this->wechatParams);

    $client = new Client();

    $oss = ImageStorageService::getInstance(); # 上传OSS 实例化

    $key = 0;

    foreach (UserWechat::find()->where(['>','id','3599'])->each(10) as $userdata){

    if($userdata['openid'] == 'mod') continue; # 去除模拟用户

    $key++;

    $openid = UserWechat::getOpenid($userdata['unionid'],$this->uniacid); #获取微信openid

    if(empty($openid)) continue;

    $user = $app->user->get($openid); #获取该用户的openid

    if(empty($user['headimgurl'])) continue;

    $avatar = $user['headimgurl']; #获取当前用户头像

    if(!empty($userdata->avatar)){

    if(strstr($userdata->avatar,'image-yp.cdn.haiwaiuni.com')) continue;

    }

    $basename = $key.'.png';

    $save_path = Yii::getAlias('@upload').'/avatar/' . $basename;

    $response = $client->request('GET', $avatar, [

    'headers' => [
    'User-Agent' => 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)',
    'Cookie' => 'Hm_lvt_cd8e5937ea4370821f41c707d5643b7f=1541991577; _ga=GA1.3.517707415.1541991577; _gid=GA1.3.1202663854.1541991577; MEIQIA_EXTRA_TRACK_ID=1CrxSfzll6nIoshf1CYSWdkCS5k; bdshare_firstime=1541991792699; MEIQIA_VISIT_ID=1CsHCsNgcZ2eLmTv5IF5XANXfYf; Hm_lpvt_cd8e5937ea4370821f41c707d5643b7f=1542004665; PHPSESSID=e392a14b61e9458ecbd3497cced9e622; _identity=2b178e67cb2eb7fb85559a27711d546f6dc5c4951a90bf2dd5c57c8505f6a0b0a%3A2%3A%7Bi%3A0%3Bs%3A9%3A%22_identity%22%3Bi%3A1%3Bs%3A49%3A%22%5B4988%2C%22uvleuSgB-eFv4ipo2Dg0VlNfzvKvUW2y%22%2C2592000%5D%22%3B%7D',
    ]
    ]);

    $text = $response->getBody()->getContents();

    if(file_put_contents($save_path,$text)) {


    #上传阿里云
    $relativeDir = "images/" . date("Y") . "/" . date("m") . "/";
    $fileName = md5('user_avatar' . time() . rand(0, 999999)) . '.png';

    $remotePath = $relativeDir . $fileName;

    $result = $oss->uploadSingleFromFile($remotePath, $save_path);

    $img = $result['info']['url'];

    #裁剪远程图片
    $oss->cutSingleFromRemote($img, [
    'width' => 300,
    'height' => 300,
    'alisa' => 'small',
    ]);

    $img = str_replace('https://cn-haiwaiuni-com.oss-cn-beijing.aliyuncs.com','https://image-yp.cdn.haiwaiuni.com',$img);

    $userdata->avatar = $img;

    if($userdata->save(false)){
    echo 'ID是'. $userdata->id .'的用户,他的昵称是' .$userdata->nickname. '它的头像'.$userdata->avatar .'保存成功啦!';
    echo " ";
    }else{
    echo '哎呀呀,ID是'. $userdata->id .'的用户,他的昵称是' .$userdata->nickname. '它的头像'.$userdata->avatar .'保存失败啦!';
    echo " ";
    }
    }else{
    echo 'ID是'. $userdata->id .'的用户,他的昵称是' .$userdata->nickname. '它的头像'.$userdata->avatar .'写入文件失败';
    }

    }
    }
  • 相关阅读:
    C#编程语言详解(第2版) 11.3 类和结构的区别
    .Net程序员如何快速成长之我见
    封装 JMail 4.4 的 POP3 为 .Net 组件 (.dll 程序集),实现 "邮件(附件) 到达" 等 "事件,c#接收邮件
    POJ1163The Triangle
    hdoj_1231&&hdoj_1003最大连续子序列
    数组名++操作导致的_BLOCK_TYPE_IS_VALID
    《windows程序设计》第二章学习心得
    error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
    Windows环境下Unicode编程总结
    已知顺序表L递增有序,写一算法,将X插入到线性表的适当位置,以保持线性表的有序
  • 原文地址:https://www.cnblogs.com/wangshuazi/p/10176223.html
Copyright © 2011-2022 走看看