1. 程式人生 > >php 上傳base64編碼圖片到七牛雲

php 上傳base64編碼圖片到七牛雲

     /**
     * 上傳base64點陣圖片到七牛雲
     * $image base64點陣圖片流
     */
    public function uploadPicBase64($image)
    {
        // 去除base64,
        $num = strpos($image,',');
        $image = substr($image, $num+1);
        $str= isset($image)?$image:false;

        //生成圖片key
        $rand = rand(1111,9999);
        $now = time();
        $name = 'pic/'.$now.$rand;
        $Key = base64_encode($name);

        $upToken = $this->getToken();

        if($str)
        {
            $qiniu = $this->phpCurlImg("http://upload-z2.qiniu.com/putb64/-1/key/".$Key,$str,$upToken);
            //upload.qiniup.com 上傳域名適用於華東空間。華北空間使用 upload-z1.qiniu.com,華南空間使用 upload-z2.qiniu.com,北美空間使用 upload-na0.qiniu.com。            

            $qiniuArr = json_decode($qiniu,true);

            if(!empty($qiniuArr['key'])&&$qiniuArr['key']==$name)
            {
                return $qiniuArr['key'];
            }
            else
            {
                return false;
            }
        }
        return false;
    }

    //七牛base64上傳方法
    public function phpCurlImg($remote_server,$post_string,$upToken)
    {
        $headers = array();
        $headers[] = 'Content-Type:application/octet-stream';
        $headers[] = 'Authorization:UpToken '.$upToken;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$remote_server);
        curl_setopt($ch, CURLOPT_HTTPHEADER ,$headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }