首页 新闻 搜索 专区 学院

微信卡券上传LOGO接口一直返回{"errcode":41005,"errmsg":"media data missing hint: [faxk30189e298]"}

0
悬赏园豆:100 [已关闭问题] 关闭于 2017-03-02 09:36
下面是我的代码,还请大神帮忙看下(图片路径加上@后接口直接不能访问)   图片路径时对的能访问


public function
get_photo($accesstoken,$logo){
$data = array('buffer' => '/xkq123/wwwroot/Public/admin/attached/201607/29/10204930063.jpg');
$url = 'https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token='.$accesstoken;
$url_logo = $this->curl($url,$data);
return $url_logo['url'];
}


public function curl($url,$data){
$curl=curl_init();
// curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, FALSE); //针对php5.6版本
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if(!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
$result=curl_exec($curl);
var_dump($result);exit;
curl_close($curl);
$result = json_decode($result, true);
return $result;


}
 
风吹裤衩蛋蛋凉的主页 风吹裤衩蛋蛋凉 | 初学一级 | 园豆:91
提问于:2016-08-10 21:23
< >
分享
所有回答(3)
0

我现在刚好也在做这个、、、我想问下 那个微信接口不是说 buffer 是图片以数据流的方式 传送吗   直接写个链接 应该不可以的吧? 是不是应该处理一下?

rentutu | 园豆:202 (菜鸟二级) | 2016-08-11 11:39

要是解决记得告诉我 谢谢

支持(0) 反对(0) rentutu | 园豆:202 (菜鸟二级) | 2016-08-11 12:00

请问数据流这个是怎么个形式啊,不太理解这个  不知道您那边这个做的怎样了

支持(0) 反对(0) 风吹裤衩蛋蛋凉 | 园豆:91 (初学一级) | 2016-08-11 13:10

@风吹裤衩蛋蛋凉: 就卡在数据流这吧 http://www.henkuai.com/thread-11637-1-1.html 这个人和我们的情况好像也差不多 不过他好像解决了

支持(0) 反对(0) rentutu | 园豆:202 (菜鸟二级) | 2016-08-11 14:06

@rentutu: 我自己解决了下面是我自己的代码希望对你有帮助:

/*上传卡券LOGO*/
public function get_photo($accesstoken,$logo)
{
$url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=$accesstoken";
// $logo = '/Public/admin/attached/201607/29/10204930063.jpg';
$data = array('buffer' => '@.'.$logo);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$return_data = curl_exec($ch);
curl_close($ch);
$return_data = json_decode($return_data,true);
return $return_data['url'];
}

/*注意:https请求和http不一样 ,需要加上curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);*/
支持(0) 反对(0) 风吹裤衩蛋蛋凉 | 园豆:91 (初学一级) | 2016-08-11 16:23

@风吹裤衩蛋蛋凉: $logo = '/Public/admin/attached/201607/29/10204930063.jpg'; 传进去的$logo是绝对路径吗? 你的php是什么版本

支持(0) 反对(0) rentutu | 园豆:202 (菜鸟二级) | 2016-08-11 17:05
0

自己解决了

风吹裤衩蛋蛋凉 | 园豆:91 (初学一级) | 2016-08-11 16:25

成功了、、、你为什么'@.' 这里会加个点呢...

支持(0) 反对(0) rentutu | 园豆:202 (菜鸟二级) | 2016-08-11 17:09
0

PHP?

80后奶爸 | 园豆:187 (初学一级) | 2016-08-12 11:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册