测试页面f3.php展示:
~~~
<?php
function http_curl($url,$data=null){//封装curl
// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,$url);
//curl_setopt($ch,CURLOPT_HEADER,0);
//下面两个是php5.6版本需加上才能实现
curl_setopt($ch,CURLOPT_SAFE_UPLOAD, FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
if(!empty($data)){
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//测试号写上这个是跳过SSL证书检查,返回结果才不会null;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//禁止curl资源直接输出
// 3.抓取url并把它传递给服务器
$opt=curl_exec($ch);
// 4. 释放curl句柄
curl_close($ch);
return $opt;
}
function get_token(){//获取access_token
$appid="wx165112bf167af76c";
$secret="c65b22bfcf03fdd98504eac299701b03";
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
$json=http_curl($url);
$result=json_decode($json);
return $result->access_token;
}
$token=get_token();
//var_dump($token);
$type="image";
//组装图片在Windows服务器上,格式示例为:”@F:\israel\upload\winter.jpg”,而在Linux服务器上,格式示例为:”@home/israel/upload/winter.jpg”。
//$path="C:\ftp\wx\xiaotu.jpg";
$path=dirname(__FILE__)."/xiaotu.jpg";
//组装路径
$data=array("media"=>"@".$path);
$url="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={$token}&type={$type}";
$arr=http_curl($url,$data);
var_dump($arr);
?>
~~~
注意:1.我用的测试号需要跳过SSL证书检查才可
~~~
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
~~~
注意:2.php5.6版本报错
![](https://box.kancloud.cn/397c5c1ae2d5f883d81f7af1f5b320e6_771x80.png)
需要加上以下两个代码
~~~
curl_setopt($ch,CURLOPT_SAFE_UPLOAD, FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
~~~
最终效果图:
![](https://box.kancloud.cn/88128763be66a6e9319703e15ca08d93_1112x238.png)