public static function uploadMedia($url, $filedata) {
$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 ( $filedata )) {
curl_setopt ( $curl, CURLOPT_POST, 1 );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $filedata );
}
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
$output = curl_exec ( $curl );
curl_close ( $curl );
return $output;
}
调用:
$filepath = dirname ( __FILE__ ) . "/*.jpg";
if (class_exists ( '\CURLFile' )) {//关键是判断curlfile,官网推荐php5.5或更高的版本使用curlfile来实例文件
$filedata = array (
'media' => new \CURLFile ( realpath ( $filepath ))
);
} else {
$filedata = array (
'media' => '@' . realpath ( $filepath )
);
}
// var_dump("yyyyyyyyyyyyyyyy".json_decode($filedata));
$url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=" . ACCESS_TOKEN . "&type=image";
$result = $this->uploadMedia ( $url, $filedata );//调用upload函数
echo( $result);