<?php namespace Mob\Controller; use Think\Controller; class WxmaterialController extends Controller { private $appId; private $appSecret; protected function _initialize() { /* 读取站点配置 */ $config = api(\'Config/lists\'); C($config); $this -> appId = C(\'WX_APPID\'); $this -> appSecret = C(\'WX_SECRET\'); } function add_material() { $file_info = array(\'filename\' => \'/Public/1111.jpg\', //国片相对于网站根目录的路径 \'content-type\' => \'image/jpg\', //文件类型 \'filelength\' => \'71\' //图文大小 ); dump($file_info); $access_token = $this -> get_access_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, 1); 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); var_dump($result); return $result[\'media_id\']; } else { return false; } } // ===================================== // = 获取微信公众号的 access_token= // ===================================== private function get_access_token() { $m_appact = M(\'Appact\', \'ot_\', DB_GY); $data = $m_appact -> where(array(\'appid\' => $this -> appId)) -> field(\'access_token,expire_time\') -> find(); if ($data[\'expire_time\'] < time()) { $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret"; $res = json_decode($this -> httpGet($url)); $access_token = $res -> access_token; if ($access_token) { $data[\'expire_time\'] = time() + 7000; $data[\'access_token\'] = $access_token; $r = $m_appact -> where(array(\'appid\' => $this -> appId)) -> find(); $save_arr = array(\'access_token\' => $data[\'access_token\'], \'expire_time\' => $data[\'expire_time\']); $add_arr = array(\'appid\' => $this -> appId, \'access_token\' => $data[\'access_token\'], \'expire_time\' => $data[\'expire_time\']); $r ? $m_appact -> where(array(\'appid\' => $this -> appId)) -> save($save_arr) : $m_appact -> add($add_arr); } } else { $access_token = $data[\'access_token\']; } return $access_token; } private function httpGet($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; } }