zoukankan      html  css  js  c++  java
  • 【微信开发】上传下载多媒体文件

    最近一段时间,开始入手了微信开发。感觉挺有意思的,虽然目前还是遇到了许多解决不了的问题。
    上传下载多媒体文件,这个作为高级接口的一部分功能,可能使用的人并不多,所以现在网上关于这个接口的使用教程很少。于是我就写了这个接口的使用方法,主要是两个函数

    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,然后跟上相关参数即可

    来源:http://www.thinkphp.cn/code/516.html

  • 相关阅读:
    Docker配置samba共享
    阿里云SSL 免费证书申请方法
    linux centos7 关闭防火墙的方法
    PHP 面向对象的特性 抽象类和接口
    详解mixphp的依赖注入控制反转
    swoole mixphp swoolefor热更新使用方法
    nginx ab并发测试 apr_socket_recv: Connection refused (111
    PHP golang java 并发测试
    php.ini 添加的模块没更新的解决方法
    关于golang的未来的道路
  • 原文地址:https://www.cnblogs.com/nerd/p/5048730.html
Copyright © 2011-2022 走看看