5.6+ 不再支持@+地址 需要使用CURLFile這個方法
5.5 $data = array('media' => '@' . $filepath);
5.6 $data = array('media' => new \CURLFile($filepath));
具體方法如下:
/**
* 上傳臨時素材
* @param string $access_token 令牌
* @param string $filepath 圖片路徑
* @return mixed
*/
public function uploadImg($access_token, $filepath)
{
$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$access_token."&type=image";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_POST, 1);
$data = array('media' => new \CURLFile($filepath));//php5.6
//$data = array('media' => '@' . $filepath);//php5.5
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
if (curl_errno($curl)) {
return 'Errno'.curl_error($curl);
}
curl_close($curl);
return $result;
}