调用微信公众号接口上传图片素材

<?php
namespace Admin\Controller;
use Think\Controller;
class AddMaterialController extends Controller{

    const AppID ='';
    const AppSecret ='';
 
    /* 新增一个永久的素材 */
    public function getMedia(){
        $file_info=array(
            'filename'=>'/waitLoad/b.png',  //国片相对于网站根目录的路径
            'content-type'=>'image/jpg',  //文件类型
            'filelength'=>'11011'         //图文大小
        );
     return $this->add_material($file_info);
    }


  public function add_material($file_info){
    $access_token=$this->token();
    $url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$access_token}&type=image";
    $ch1 = curl_init ();
    $timeout = 5;
    $real_path="{$_SERVER['DOCUMENT_ROOT']}{$file_info['filename']}";
    // $real_path=str_replace("/", "\\", $real_path);
    $data= array("media"=>"@{$real_path}",'form-data'=>$file_info);
    curl_setopt ( $ch1, CURLOPT_URL, $url );
    curl_setopt ( $ch1, CURLOPT_POST, 1 );
    curl_setopt ( $ch1, CURLOPT_RETURNTRANSFER, true );
    curl_setopt ( $ch1, CURLOPT_CONNECTTIMEOUT, $timeout );
    curl_setopt ( $ch1, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt ( $ch1, CURLOPT_SSL_VERIFYHOST, false );
    curl_setopt ( $ch1, CURLOPT_POSTFIELDS, $data );
    $result = curl_exec ( $ch1 );
    curl_close ( $ch1 );
    if(curl_errno()==0){
        $result=json_decode($result,true);
        return $result['media_id'];
    }else {
        return false;
    }
}



    public function token(){
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".self::AppID."&secret=".self::AppSecret;
        $data = json_decode(file_get_contents($url),true);
        if($data['access_token']){
            return $data['access_token'];
        }else{
            echo "Error";
            exit();
        }
    }




}

?>

 

创建上边的类文件,然后再网站根目录创建文件夹,来放要上传的素材图片

然后在关注后发送图片

$image=A('AddMaterial');$imageMedia=$image->getMedia();$weObj->image($imageMedia)->reply ();

 

转载于:https://my.oschina.net/jmk/blog/1002631