微信公众号素材管理模块

安稳与你 提交于 2019-11-26 11:47:35

微信公众号素材管理文档:官方文档 

看到新增临时素材时,官方方式:

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

一般开发都是通过curl来模拟form表单post数据

$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_POST,true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);   
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//CURLOPT_POSTFIELDS
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$tmpInfo = curl_exec($ch);

//其中的数据$data,这点会有点坑,需要说明下,

根据php.net官方文档上面,选项 CURLOPT_POSTFILEDS 原先可以通过“@”.$filename,来上传文件。从PHP 5.5.0开始这种方法就废弃了,必须采用CURLFILE类来上传文件

$obj = new CurlFile($imgUrl);
$obj->setMimeType("image/jpeg");

$post['media'] =  $obj;

$data=$post;//需要先通过这个CurlFile封装一下

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!