解决办法:因为php版本的原因,上传素材一直保错。
php
的curl的curl_setopt 函数存在版本差异
php5.5已经把通过@加文件路径上传文件的方式给放入到Deprecated中了。php5.6默认是不支持这种方式了
特殊处理1:curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);
特殊处理2:$post_data ['media'] = '@'.$file;
具体curl_post代码:
function post($url, $data)
{
//初始化
$ch = curl_init($url);
//设置请求的参数
curl_setopt ($ch, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);//设置请求方式为post
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
//执行发送
$res = curl_exec($ch);
//返回
return $res;
}
<?php
include './function.php';
//请求的接口地址
$url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=".getToken()."&type=image";
$data['media'] = '@'.dirname(__FILE__).'/sucai/images/2.jpg';
$res = post($url,$data);
echo $res;
?>