原文地址:http://www.ithao123.cn/content-828327.html
$filepath = dirname ( __FILE__ ) . "/a.jpg";
if (class_exists ( 'CURLFile' )) {
//关键是判断curlfile,官网推荐php5.5或更高的版本使用curlfile来实例文件
$filedata = array (
'fieldname' => new CURLFile ( realpath ( $filepath ), 'image/jpeg' ));
} else {
$filedata = array ( 'fieldname' => '@' . realpath ( $filepath ) );
}
$url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=" . $access_token . "&type=image"; $result = Http::upload ( $url, $filedata );
//调用upload函数 if (isset ( $result )) {
$data = json_decode ( $result );
if (isset ( $data->media_id )) {
$this->responseText ( $data->media_id );
//这是我自己封装的返回消息函数
} else {
$this->responseImg ( "not set media_id" );
//这是我自己封装的返回消息函数 }
} else {
$this->responseText ( "no response" );
//这是我自己封装的返回消息函数
}
public static function upload($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;
}