php 微信开发之新增上传/获取下载临时素材 代码

<?php 
define("AppID","");//你的id 
define("AppSecret", "");//你的secret

/*  上传临时文件 */
$a = "0";
if($a == "1"){
$type = "image";
$filepath = dirname(__FILE__)."\w.jpg"; 
$filedata = array("file1"  => "@".$filepath);
$url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=".token()."&type=".$type;
$result = https_request($url, $filedata);
$p = json_decode($result);
echo "media_id:".$p->media_id;
}

/*  获取临时的文件  */
$b = "1";
if($b == "1"){
$id = "Zary6julqwRBBuSgzFbiMCSjYmG2930UvzjrbnHN4nyT3YGZVD8H-ecfoReGT1Qr";
$url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=".token()."&media_id=".$id;
$arr = downloadWeixinFile($url);
saveWeixinFile("1.jpg",$arr['body']);

}

function downloadWeixinFile($url)
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);    
    curl_setopt($ch, CURLOPT_NOBODY, 0);    //只取body头
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $package = curl_exec($ch);
    $httpinfo = curl_getinfo($ch);
    curl_close($ch);
    $imageAll = array_merge(array('header' => $httpinfo), array('body' => $package)); 
    return $imageAll;
}

function saveWeixinFile($filename, $filecontent)
{
    $local_file = fopen($filename, 'w');
    if (false !== $local_file){
        if (false !== fwrite($local_file, $filecontent)) {
            fclose($local_file);
        }
    }
}

function token(){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppID."&secret=".AppSecret;
    $data = json_decode(file_get_contents($url),true);
if($data['access_token']){
return $data['access_token'];
    }else{
        echo "Error";
   exit();
    }
}
?>

使用的注意事情。文件必须需要绝对的路径不能相对路径然后在路径前面加个@ (列子: @F:\\w.jpg) 这样才是正确的 然后type 类型自己定义一下。上传视频的为 video 图片为 image 音乐为 voice

图片(image): 1M,支持JPG格式
语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式
视频(video):10MB,支持MP4格式
缩略图(thumb):64KB,支持JPG格式
各位记住了

php 微信开发之新增上传/获取下载临时素材的更多相关文章

  1. 《C#微信开发系列(3)-获取接口调用凭据》

    3.0获取接口调用凭据 ①接口说明 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留 ...

  2. 微信开发笔记:公众号获取access_token

    微信开发中,access_token的获取是一种非常常见的功能,通过公众号的appid和appsecret来向微信公众平台请求一个临时通行凭证:access_token.公众平台上的绝大部分操作都会需 ...

  3. 【微信开发】 新浪SAE开发平台 注意事项

    1. 微信开发 新浪SAE开发平台 验证Token 一直失败? 这个问题困扰了一个又一个的微信学习者,现在百度到的答案有:在echo $echoStr;之前添加header('content-type ...

  4. 微信小程序云开发-云存储-上传、下载、打开文件文件(word/excel/ppt/pdf)一步到位

    一.wxml文件 <!-- 上传.下载.打开文件一步执行 --> <view class="handle"> <button bindtap=&quo ...

  5. web开发——文件的上传和下载

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...

  6. .net web开发——文件的上传和下载

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  7. asp.net web开发——文件的上传和下载

    HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...

  8. ECSHOP产品内容页新增上传功能

    第一步:在 admin\templates\goods_info.htm中 <span class="tab-back" id="article-tab" ...

  9. Java web开发——文件的上传和下载

    一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输. ...

随机推荐

  1. iOS import framework头文件时报错could not build module xxx

    导致这个错误的原因有多种: 1.库的search paths没有设置对. 2.库里面某些头文件找不到. 而导致.h头文件找不到的原因也有多种: (a)search paths没设置对,文件可能换过位置 ...

  2. wget下载网站

    命令格式如下: wget -r -p -np -k http://URL -r:在本机建立服务器端目录结构: -p: 下载显示HTML文件的所有图片: -np:只下载目标站点指定目录及其子目录的内容: ...

  3. git reset,git checkout区别

    https://www.cnblogs.com/houpeiyong/p/5890748.html git reset  HEAD~1  将HEAD指向倒数第二次提交,最后一次提交删除,文件还在 gi ...

  4. jqGrid怎么设置初始化页面时不加载数据(不向服务器请求数据)

    最近做一些表格一直用到jqGrid,今天遇到一个问题: 1.就是页面加载的时候数据不显示,点击搜索才根据请求从服务器返回并显示内容. 2.默认不从服务器请求数据(不然在开发者工具下会显示请求不到数据的 ...

  5. windows curl命令

    一.概述 Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令 二.下载 下载地址:https://cu ...

  6. (总结)Linux下的暴力密码在线破解工具Hydra详解

    (总结)Linux下的暴力密码在线破解工具Hydra详解 学习了:https://blog.csdn.net/yafeichang/article/details/53502869

  7. Centos 7 联想Y430P无线网卡驱动安装 过程参考

    Centos 7  联想Y430P无线网卡驱动安装 过程参考 ABRT 已检测到 [root@endv ~]# yum install -y rdesktop 已加载插件:fastestmirror, ...

  8. [Algorithm] Heap data structure and heap sort algorithm

    Source, git Heap is a data structure that can fundamentally change the performance of fairly common ...

  9. 10. 修改端口号【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51637017 spring boot 默认端口是8080,如果想要进行更改的话,只需要修改 ...

  10. SpringMVC处理MySQL BLOB字段的下载

    任务: uos.docfile的content字段是longblob类型,通过Web点击链接能下载到存储在这个字段里的文件.Web点击链接类似如下形式: http://localhost:8080/d ...