微信公众平台开发【素材管理】上传临时素材

公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。

接口开放权限:素材管理接口对所有认证的订阅号和服务号开放。

接口调用说明

1、http请求方式

POST/FORM,需使用https

2、参数说明

 

参数 是否必须 说明access_token 是 调用接口凭证type 是 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)media 是 form-data中媒体文件标识,有filename、filelength、content-type等信息

3、返回数据说明

 

参数 描述type 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)media_id 媒体文件上传后,获取时的唯一标识created_at 媒体文件上传时间戳

 

正确情况下的返回JSON数据包结果如:{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}

错误情况下的返回JSON数据包示例如:{"errcode":40004,"errmsg":"invalid media type"}(此错误指无效媒体类型错误)

完整示例代码

1、上传图片“smallelife.jpg”到服务器根目录

2、将以下代码写入到index.php文件中,并将此文件上传到服务器根目录(记得修改AppID和AppSecret),具体如下:(完整代码下载

 

[php] view plain copy

  1. <?php  
  2. /** 
  3.   * 作者:smalle 
  4.   * 网址:http://blog.youkuaiyun.com/oldinaction 
  5.   * 公众号:smallelife 
  6.   */  
  7.   
  8. define("AppID","你的AppID");  
  9. define("AppSecret", "你的AppSecret");  
  10.   
  11. /* 新增一个临时素材 */  
  12. //url 里面的需要2个参数一个 access_token 一个是 type(值可为image、voice、video和缩略图thumb)  
  13. $url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=".get_token()."&type=image";  
  14. if (class_exists('\CURLFile')) {  
  15.     $josn = array('media' => new \CURLFile(realpath("smallelife.jpg")));  
  16. } else {  
  17.     $josn = array('media' => '@' . realpath("smallelife.jpg"));  
  18. }  
  19.   
  20. $ret = curl_post($url,$josn);  
  21. $row = json_decode($ret);//对JSON格式的字符串进行编码  
  22. echo '此素材的唯一标识符media_id为:'.$row->media_id;//得到上传素材后,此素材的唯一标识符media_id  
  23.   
  24. //获取access_token  
  25. function get_token(){  
  26.     $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppID."&secret=".AppSecret;  
  27.     $data = json_decode(file_get_contents($url),true);  
  28.     if($data['access_token']){  
  29.         return $data['access_token'];  
  30.     }else{  
  31.         echo "Error";  
  32.         exit();  
  33.     }  
  34. }  
  35.   
  36. //curl实现post请求  
  37. function curl_post($url, $data = null)  
  38. {  
  39.     //创建一个新cURL资源  
  40.     $curl = curl_init();  
  41.     //设置URL和相应的选项   
  42.     curl_setopt($curl, CURLOPT_URL, $url);  
  43.     if (!empty($data)){  
  44.         curl_setopt($curl, CURLOPT_POST, 1);  
  45.         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);  
  46.     }  
  47.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
  48.     //执行curl,抓取URL并把它传递给浏览器  
  49.     $output = curl_exec($curl);  
  50.     //关闭cURL资源,并且释放系统资源  
  51.     curl_close($curl);  
  52.     return $output;  
  53. }  
  54.   
  55. ?>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩淼燃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值