调用以下接口上传永久图片素材,一直报41005的错误。
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
调用以下接口上传临时素材可以正常返回media_id。
https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
网上查了很多都说是PHP 版本问题,可是我也做了版本判断了,我是用PHP5.6的版本,调用的是CurlFile()。可还是报41005,哪位大神可以帮忙看看呢。万分感谢了!private function upload_material($type, $file)
{
$filepath = dirname(__FILE__).'/image/'.$file;   if (class_exists('\CURLFile')){  //关键是判断curlfile,官网推荐php5.5或更高的版本使用curlfile来实例文件  
$filepa = new CurlFile($filepath);
$filedata = array('media'=>$filepa);  
} else {  
$filedata = array('media'=>'@'.realpath($filepath),'form-data'=>$file_info);  
}

$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$this->access_token."&type=".$type;

var_dump($filedata);
var_dump("<br><br>");

$res = https_request($url, json_encode($filedata));
return $res;  
}function https_request($url, $data = null)
{
$curl = curl_init();
if (class_exists('/CURLFile')) {//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同  
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, TRUE);  
} else {  
if (defined('CURLOPT_SAFE_UPLOAD')) {  
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);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return json_decode($output,true);
}