微信公众号开发-新增临时素材(PHP亲测可用)

一、步骤:

1、获取access_token;
2、上传素材,获取临时素材的media_id(这里主要以图片为例)

二、代码:

class wechatMini
{
	public function temporaryUploadFile()
    {
        $accesstoken = $this->getAccessToken();
        $url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={$accesstoken}&type=image";
        $filename = realpath('11.jpeg');
        $result = $this->httpPost($url, $filename);
        var_dump($result);
    }

    public function curlGet($url)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        $res = curl_exec($curl);
        curl_close($curl);
        return $res;
    }

    public function getAccessToken()
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxxxxx&secret=xxxxxx';
        $result = json_decode($this->curlGet($url), true);
        return $result['access_token'];
    }


    public function httpPost($url, $data)
    {
        $ch = curl_init();
        if (class_exists('\CURLFile')) {
            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
            $data = array('media' => new \CURLFile($data));//>=5.5
        } else {
            if (defined('CURLOPT_SAFE_UPLOAD')) {
                curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
            }
            $data = array('media' => '@' . realpath($data));//<=5.5
        }
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, "TEST");
        $result = curl_exec($ch);
        curl_close($ch);
        return json_encode($result, true);
    }
}

$wechatMini = new wechatMini();
$wechatMini->temporaryUploadFile();

三、结果:

在这里插入图片描述

四、注意

1、PHP5.5以下是支持@+文件这种方式上传文件。
2、PHP5.5以上是支持 new \CURLFile(文件) 这种方式上传文件。
3、图片路径为当前目录跟该php文件同一级,可根据自己需要更改。
4、媒体文件在微信后台保存时间为3天,即3天后media_id失效。
5、临时素材media_id是可复用的。

你可能感兴趣的:(【01】PHP,【21】微信公众号开发)