微信公众号开发上传零时素材遇到"errcode":41005,"errmsg":"media data missing

解决办法:因为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;
    ?>





没有更多推荐了,返回首页