在开发微信公众平台的时候,需要把图片发给用户,需要先把图片上传到微信的服务器,采用临时媒体接口,用curl上传文件的时候,总是提醒文件上传错误,内容好像是说不存在。
由于现在在公交车上,明天贴上具体的代码和错误提示,这里想请以前遇到过的,说说解决办法。
这是我的,可以用。
内容不存在至少你等调试看看吧?
微信调试平台:
也可以自行建一个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;
}
}