【微信开发】上传下载多媒体文件

最近一段时间,开始入手了微信开发。感觉挺有意思的,虽然目前还是遇到了许多解决不了的问题。
上传下载多媒体文件,这个作为高级接口的一部分功能,可能使用的人并不多,所以现在网上关于这个接口的使用教程很少。于是我就写了这个接口的使用方法,主要是两个函数
  1. //上传多媒体文件
  2.     function uploadMedia($url){
  3.         $file = realpath('1.mp3'); //要上传的文件
  4.         $fields['media'] = '@'.$file;
  5.         $ch = curl_init($url) ;
  6.         curl_setopt($ch, CURLOPT_POST, 1);
  7.         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  8.         curl_setopt($ch, CURLOPT_POST, 1);
  9.         curl_setopt($ch, CURLOPT_POSTFIELDS,$fields);
  10.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  11.         $result = curl_exec($ch) ;
  12.         if (curl_errno($ch)) {
  13.          return curl_error($ch);
  14.         }
  15.         curl_close($ch);
  16.         return $result;
  17.     }
  18.  //下载多媒体文件
  19.     function saveMedia($url){
  20.         $ch = curl_init($url);
  21.         curl_setopt($ch, CURLOPT_HEADER, 0);    
  22.         curl_setopt($ch, CURLOPT_NOBODY, 0);    //对body进行输出。
  23.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  24.         $package = curl_exec($ch);
  25.         $httpinfo = curl_getinfo($ch);
  26.        
  27.         curl_close($ch);
  28.         $media = array_merge(array('mediaBody' => $package), $httpinfo);
  29.         
  30.         //求出文件格式
  31.         preg_match('/\w\/(\w+)/i', $media["content_type"], $extmatches);
  32.         $fileExt = $extmatches[1];
  33.         $filename = time().rand(100,999).".{$fileExt}";
  34.         $dirname = "./wximages/";
  35.         if(!file_exists($dirname)){
  36.             mkdir($dirname,0777,true);
  37.         }
  38.         file_put_contents($dirname.$filename,$media['mediaBody']);
  39.         return $dirname.$filename;
  40.     }
复制代码
函数中的url就是官方说明文档中的url,然后跟上相关参数即可
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值