php enterprise WeChat upload temporary file interface

public function upload_temp_file(){
        $info = array();
$info["media"] = '@'.dirname($_SERVER["DOCUMENT_ROOT"].$_SERVER["REQUEST_URI"]).'/file.png';
        $res = $this->uploadMedia($info,"image");

        print_r($res);

}

function uploadMedia($data,$type){            

        $url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=".$this->token."&type=".$type;       
        $result = $this->http_post($url,$data,true)["content"];
        if($result){
            $json = json_decode($result,true);
            if (!$json || !empty($json['errcode'])) {
                $this->errCode = $json['errcode'];
                $this->errMsg = $json['errmsg'];
                return false;
            }
            return $json;
        }
        return false;

    }

function http_post($url,$param,$post_file=false){
        $oCurl = curl_init();

        if(stripos($url,"https://")!==FALSE){
            curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
        }
        if(PHP_VERSION_ID >= 50500 && class_exists('\CURLFile')){
            $is_curlFile = true;
        }else {
            $is_curlFile = false;
            if (defined('CURLOPT_SAFE_UPLOAD')) {
                curl_setopt($oCurl, CURLOPT_SAFE_UPLOAD, false);
            }
        }
        
        if($post_file) {
            if($is_curlFile) {
                foreach ($param as $key => $val) {                     
                    if(isset($val["tmp_name"])){
                        $param[$key] = new \CURLFile(realpath($val["tmp_name"]),$val["type"],$val["name"]);
                    }else if(substr($val, 0, 1) == '@'){
                        $param[$key] = new \CURLFile(realpath(substr($val,1)));                
                    }                           
                }
            }                
            $strPOST = $param;
        }else{
            $strPOST = json_encode($param);
        } 
        
        curl_setopt($oCurl, CURLOPT_URL, $url);
        curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt($oCurl, CURLOPT_POST,true);
        curl_setopt($oCurl, CURLOPT_POSTFIELDS,$strPOST);
        curl_setopt($oCurl, CURLOPT_VERBOSE, 1);
        curl_setopt($oCurl, CURLOPT_HEADER, 1);


        // $sContent = curl_exec($oCurl);
        // $aStatus  = curl_getinfo($oCurl);
        $sContent = $this->execCURL($oCurl);
        curl_close($oCurl);


        return $sContent;
    }

    function execCURL($ch){
        $response = curl_exec($ch);
        $error    = curl_error($ch);
        $result   = array( 'header' => '', 
                         'content' => '', 
                         'curl_error' => '', 
                         'http_code' => '',
                         'last_url' => '');
        
        if ($error != ""){
            $result['curl_error'] = $error;
            return $result;
        }


        $header_size = curl_getinfo($ch,CURLINFO_HEADER_SIZE);
        $result['header'] = str_replace(array("\r\n", "\r", "\n"), "<br/>", substr($response, 0, $header_size));
        $result['content'] = substr( $response, $header_size );
        $result['http_code'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);
        $result['last_url'] = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
        $result["base_resp"] = array();
        $result["base_resp"]["ret"] = $result['http_code'] == 200 ? 0 : $result['http_code'];
        $result["base_resp"]["err_msg"] = $result['http_code'] == 200 ? "ok" : $result["curl_error"];


        return $result;
    }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325640076&siteId=291194637