加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP处理base64编码字符串

发布时间:2020-12-13 21:26:56 所属栏目:PHP教程 来源:网络整理
导读:接收前端传过来的base64编码后的字符串,如果 是json字符串,那么PHP使用file_get_contents(‘php://input‘); 来接收 . 本次这里是以post传参的形式传base64字符串. $photo = Yii:: $app -request-post(‘photo‘,‘‘); // yii接收,photo变量存储的即base64
  • 接收前端传过来的base64编码后的字符串,如果是json字符串,那么PHP使用file_get_contents(‘php://input‘); 来接收. 本次这里是以post传参的形式传base64字符串.
    $photo = Yii::$app->request->post(‘photo‘,‘‘);    //yii接收,photo变量存储的即base64字符串

    ?

  • 设置base64转成图片后要保存的文件名 以及 路径
    $filename = date(‘YmdHis‘).rand(1111,9999).‘.png‘;
    $path = Yii::$app->basePath.‘/web/temp‘;
    if(!is_dir($path)){
    mkdir($path,0777,‘true‘);
    }
    $imagePath = $path.‘/‘.$filename;  //文件的完整路径(本地的)

    ?

  • 判断是否有逗号,如果有就截取后半部分
    if(strstr($photo,‘,‘)){
        $photo = explode(‘,$photo);
        $photo = $photo[1];
    }

    ?

  • base64生成图片
    $r = file_put_contents($imagePath,base64_decode($photo));   //$r接收的是返回的字节数,至此本地成功生成图片

    ?

  • 接下来是将本地图片保存至oss上,并删除本地图片
    $photo_url = $this->uploadImg($imagePath);  //调用上传oss方法
    //删掉本地图片
    unlink($imagePath);

    上传oss方法如下(需要下载ossSDK并引入,此处省略)

    public $access_key = ‘你的access_key‘;
    public $secret_key = ‘你的secret_key‘;
    public $domain = ‘http://oss-cn-shenzhen.aliyuncs.com‘;  //选距离最近的域名
    public $bucket = ‘你的bucket‘;
    //$localdir是图片的本地路径,也就是$imagePath public function uploadImg($localdir=‘‘) { include Yii::$app->basePath.‘extensions/aliyun-oss-php-sdk-2.2.4/autoload.php‘; //将ossSDK包放在extensions目录下,然后引入autoload.php,还有命名空间. 即可使用. //把文件上传到oss上 try{ $object = md5(time().uniqid()).‘.png‘; $ossClient = new OssClient($this->access_key,$this->secret_key,$this->domain); $exist = $ossClient->doesObjectExist($this->bucket,$object); if(!$exist){ $ossClient->uploadFile($this->bucket,$object,$localdir); } $domain = explode(‘//‘,$this->domain); $url = ‘http://‘.$this->bucket.‘.‘.$domain[1].‘/‘.$object; //拼接访问路径 // $data = [ // ‘status‘ => 0,// ‘msg‘ => ‘success‘,// ‘url‘ => $url,// ]; return $url; } catch(OssException $e) { printf(__FUNCTION__ . ": FAILEDn"); printf($e->getMessage() . "n"); return; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读