public function uploadWXImg($imgpath, $id){ $mp_infoModel = M('Game'); $mp_info = $mp_infoModel->find($id); $TOKEN=$this->get_access_token($mp_info['app_id'], $mp_info['app_secret']); $URL ='https://api.weixin.qq.com/cgi-bin/media/upload?access_token='.$TOKEN.'&type=image'; $data = ['media'=>'@'.$imgpath]; $result = $this->curl_post($URL,$data); $data = @json_decode($result,true); return $data['media_id']; } /** * 获取token * @param string $appId * @param string $appSecret * @return mixed */ public function get_access_token($appId = '', $appSecret = ''){ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appId&secret=$appSecret"; $result = file_get_contents($url); $result = json_decode($result,true); $accesstoken = $result['access_token']; return $accesstoken; } public function curl_post($url, $data = null) { $curl=curl_init(); curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, FALSE); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if(!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); $hadFile=false; if (is_array($data) && isset($data['media'])) { /* 支持文件上传 */ if (class_exists('CURLFile')){ curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true); foreach ($data as $key => $value) { if ($this->isPostHasFile($value)) { $postfields[$key] = new CURLFile(realpath(ltrim($value, '@'))); $hadFile = true; } } }elseif (defined('CURLOPT_SAFE_UPLOAD')) { if ($this->isPostHasFile($value)) { curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false); $hadFile = true; } } } $tmpdatastr = (!$hadFile && is_array($postfields)) ? http_build_query($postfields) : $postfields; curl_setopt($curl, CURLOPT_POSTFIELDS, $tmpdatastr); } curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); $output=curl_exec($curl); curl_close($curl); return $output; } public function isPostHasFile($value) { if (is_string($value) && strpos($value, '@') === 0 && is_file(realpath(ltrim($value, '@')))) { return true; } return false; }