100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信公众号开发--新增临时素材

微信公众号开发--新增临时素材

时间:2021-09-26 00:44:05

相关推荐

微信公众号开发--新增临时素材

在近日的微信公众号开发中,遇到临时素材的提交

遇到错误码45001 显示媒体文件不存在,返回代码打印了文件路径,发现路径没有任何问题,继续重来还是45001。

过了会弹出api访问超过当日次数,更郁闷了,明明没有访问几次

当天查阅了curl的文献后,终于在第二天解决。

首先我们看到微信的临时素材接口:

http请求方式:POST/FORM,使用httpshttps://api./cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件):curl -F media=@test.jpg "https://api./cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"

-f使用curl命令,用FORM表单方式上传一个多媒体文件

$filedata = array("media" =>'@'.$filepath)

返回错误码45001

那么到底是什么问题呢?现在我们能确定两点1:不是微信接口的问题,2:不是路径问题,让我不禁怀疑到curl函数的问题,刚开始没怀疑它是因为这个函数能正确的获取的access_token但是现在不得不怀疑是否上传文件的时候要发生改变。好吧,咱们去百度curl模拟上传文件发现了一个很重要的问题

PHP5.5以下是支持@+文件这种方式上传文件

PHP5.5以上是支持 new \CURLFile(文件) 这种方式上传文件

然后笔者的却是php7.0.7(我是5.6.38)那么事不宜迟赶紧换方式上传试试,改掉文件上传的方式后,测试成功!

作者:闫美丽

链接:/p/a7cbca4bef76

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

下面是上传的代码

// 这里用特性检测判断php版本if (class_exists('\CURLFile')){curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);//php版本>=5.5$filedata = array('media' => new \CURLFile($filepath));}else{if (defined('CURLOPT_SAFE_UPLOAD')) {curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);}//php版本大<5.5$filedata = array('media' => '@' . realpath($filepath));}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。