curl上传微信公众资源文件失败

在开发微信公众平台的时候,需要把图片发给用户,需要先把图片上传到微信的服务器,采用临时媒体接口,用curl上传文件的时候,总是提醒文件上传错误,内容好像是说不存在。

由于现在在公交车上,明天贴上具体的代码和错误提示,这里想请以前遇到过的,说说解决办法。

阅读 6.1k
1 个回答

这是我的,可以用。
内容不存在至少你等调试看看吧?

微信调试平台:

也可以自行建一个post.php文件看收到的数据与测试平台的数据是否一致。

图片描述

<?php
//'D:\WWW\20150906120321.jpg'
$file_info=array(
    'filename'=>'/20150906120.jpg',  //相对于网站根目录的路径
    'content-type'=>'image/jpeg',  //文件类型
    'filelength'=>filesize(dirname(__FILE__).'/20150906120.jpg')//图片大小
);
print_r(add_material($file_info));
function add_material($file_info){
    $access_token='W689lQ7HnMnwNb91uXD1mb1HeubNPiJvyjBG2uze8EhyixN8v1awuOx07nDJCPd1sPk2d1VaqrulZHySF0qR82qOsIinN6t4uht6tBzwMfcAHFaAIANUS';
    $url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$access_token}&type=image";
    $ch = curl_init ();
    $timeout = 30;
    $real_path="{$_SERVER['DOCUMENT_ROOT']}{$file_info['filename']}";
    $data= array("media"=>"@{$real_path}");//,'form-data'=>$file_info
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_POST, 1 );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );
    @curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
    $result = curl_exec ( $ch );
    curl_close ( $ch );
    if(@curl_errno($result)==0){
        return json_decode($result,true);
    }else {
        return false;
    }
}
推荐问题
宣传栏