微信公众平台开发(80) 上传下载多媒体文件

微信公众账号在回复图片、语音、视频的时候将使用media_id来调用相关文件很多朋友咨询这个如何开发实现。本文将介绍在微信公众平台开发过程中如何上传下载多媒体文件。

 

一、上传多媒体文件

公众号可调用本接口来上传图片、语音、视频等文件到微信服务器上传后服务器会返回对应的media_id公众号此后可根据该media_id来获取多媒体。请注意media_id是可复用的调用该接口需http协议。

通常文件上传是通过html表单进行的但通过CURL可以不经过浏览器直接在服务器端进行表单的POST提交完成文件上传功能。

需要注意的是文件名必须是完整绝对路径另外需要绝对路径前加上“@”以示区分。

在Windows服务器上格式示例为”@F:\israel\upload\winter.jpg”而在Linux服务器上格式示例为”@home/israel/upload/winter.jpg”。

http请求方式: POST/FORM

http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE

参数说明


参数


是否必须


说明


access_token



调用接口凭证


type



媒体文件类型分别有图片image、语音voice、视频video和缩略图thumb


media



form-data中媒体文件标识有filename、filelength、content-type等信息

上传图片

返回结果

{
    "type": "image",
    "media_id": "QQ9nj-7ctrqA8t3WKU3dQN24IuFV_516MfZRZNnQ0c-BFVkk66jUkPXF49QE9L1l",
    "created_at": 1389793969
}

 

上传语音

返回结果

{
    "type": "voice",
    "media_id": "5Idx79V9E3XfBCz_A50gr1a1_klgPpJnb_eq73yz0bn-prhIsNlwI3n6jQgshmWk",
    "created_at": 1389794760
}

 

上传视频

 

返回结果

{
    "type": "video",
    "media_id": "Jm-Wq0nXtA_oN1qNydQRP03dCsB0R2t5gCHDM3QNkBmMRE1WBaorVJNQTBRHvK9-",
    "created_at": 1389794768
}

上传缩略图

返回结果

{
    "type": "thumb",
    "thumb_media_id": "2RhP0caRKHVOmZO5AKelHkK--vqPPwgUaRp5-WE63dvmmPRWiYVKgvNblIp_gv79",
    "created_at": 1389794771
}

参数说明


参数


描述


type


媒体文件类型分别有图片image、语音voice、视频video和缩略图thumb主要用于视频与音乐格式的缩略图


media_id


媒体文件上传后获取时的唯一标识


created_at


媒体文件上传时间戳

注意事项

上传的多媒体文件有格式和大小限制如下

  图片image: 128K支持JPG格式

  语音voice256K播放长度不超过60s支持AMR\MP3格式

  视频video1MB支持MP4格式

  缩略图thumb64KB支持JPG格式

媒体文件在后台保存时间为3天即3天后media_id失效。对于需要重复使用的多媒体文件可以每3天循环上传一次更新media_id。

 

二、下载多媒体文件

公众号可调用本接口来获取多媒体文件。请注意视频文件不支持下载调用该接口需http协议。

下载文件使用获取图片数据写入新文件的方法。

http请求方式: GET

http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID

参数说明


参数


是否必须


说明


access_token



调用接口凭证


media_id



媒体文件ID

 

下载图片

代码实现

返回HTTP头示例如下

{
    "url": "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnvH-BYmNFSddt7re5ZrIg&media_id=QQ9nj-7ctrqA8t3WKU3dQN24IuFV_516MfZRZNnQ0c-BFVkk66jUkPXF49QE9L1l",
    "content_type": "image/jpeg",
    "http_code": 200,
    "header_size": 308,
    "request_size": 316,
    "filetime": -1,
    "ssl_verify_result": 0,
    "redirect_count": 0,
    "total_time": 1.36,
    "namelookup_time": 1.016,
    "connect_time": 1.078,
    "pretransfer_time": 1.078,
    "size_upload": 0,
    "size_download": 105542,
    "speed_download": 77604,
    "speed_upload": 0,
    "download_content_length": 105542,
    "upload_content_length": 0,
    "starttransfer_time": 1.141,
    "redirect_time": 0
}

 

下载语音

代码实现

返回HTTP头如下

{
    "url": "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnvH-BYmNFSddt7re5ZrIg&media_id=5Idx79V9E3XfBCz_A50gr1a1_klgPpJnb_eq73yz0bn-prhIsNlwI3n6jQgshmWk",
    "content_type": "audio/amr",
    "http_code": 200,
    "header_size": 306,
    "request_size": 316,
    "filetime": -1,
    "ssl_verify_result": 0,
    "redirect_count": 0,
    "total_time": 0.125,
    "namelookup_time": 0.031,
    "connect_time": 0.063,
    "pretransfer_time": 0.063,
    "size_upload": 0,
    "size_download": 10470,
    "speed_download": 83760,
    "speed_upload": 0,
    "download_content_length": 10470,
    "upload_content_length": 0,
    "starttransfer_time": 0.125,
    "redirect_time": 0
}

可以看出MP3的语音格式被压缩成AMR格式了。

 

下载缩略图

实现代码

返回HTTP头如下

{
    "url": "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnvH-BYmNFSddt7re5ZrIg&media_id=2RhP0caRKHVOmZO5AKelHkK--vqPPwgUaRp5-WE63dvmmPRWiYVKgvNblIp_gv79",
    "content_type": "image/jpeg",
    "http_code": 200,
    "header_size": 306,
    "request_size": 316,
    "filetime": -1,
    "ssl_verify_result": 0,
    "redirect_count": 0,
    "total_time": 0.094,
    "namelookup_time": 0,
    "connect_time": 0.047,
    "pretransfer_time": 0.047,
    "size_upload": 0,
    "size_download": 6057,
    "speed_download": 64436,
    "speed_upload": 0,
    "download_content_length": 6057,
    "upload_content_length": 0,
    "starttransfer_time": 0.094,
    "redirect_time": 0
}

 至于回复相应的消息就是利用消息接口或者客服接口构造成相应的消息就行了和构造文本图文消息的方法是一样的。

 

====================================================================

方倍工作室微信公众平台账号关注方法
1. 微信通讯录-添加朋友-查找公众号-搜索“方倍工作室”
2. 微信通讯录-添加朋友-搜号码-输入“pondbaystudio”
3. 使用微信扫描下面的二维码

时间: 2024-05-15 14:41:40

微信公众平台开发(80) 上传下载多媒体文件的相关文章

图片-微信公众平台开发调用上传素材接口 为什么一直返回48001

问题描述 微信公众平台开发调用上传素材接口 为什么一直返回48001 解决方案 说的很清楚,没有验证成功,检查你的token

微信公众平台开发教程

本系列微信公众平台教程以PHP+MySQL为开发环境,介绍了微信公众平台开发模式下基础接口.自定义菜单.高级接口.WeiXin JS接口.微信支付等接口以及在此基础上的功能或应用开发的方法及技巧,案例极具实用价值,是学习微信公众平台开发实战的经典教材.   配套书籍 <微信公众平台开发最佳实践> 由方倍工作室编写,覆盖基础接口.自定义菜单.高级接口.微信支付.转发分享等五大接口,包含近30个案例及技巧,已成功帮助无数人进入微信开发领域. 购买地址        准备工作 微信公众平台的注册 介

微信公众平台开发(89) 高级群发接口

 在这篇微信公众平台高级接口开发教程中我们将介绍如何使用接口实现微信公众平台群发功能. 本文分为以下四个部分 准备群发内容 选择群发对象 执行群发 接收群发结果   一.准备群发内容 群发内容可以是文本.图片.语音.视频.图文.群发文本只需要文本内容其他内容需要获得相应的media_id. 1. 文本内容 文本内容就是一段文字比如"微信公众平台开发最佳实践" 2. 图片.语音.视频 要求如下 图片image: 128K支持JPG格式 语音voice256K播放长度不超过60s支持AMR

微信公众平台开发(44)历史上的今天

微信公众平台开发 历史上的今天 当年今日作者:方倍工作室 原文: http://www.cnblogs.com/txw1958/p/weixin-44-history.html   一.历史上的今天 回顾历史的长河,历史是生活的一面镜子:以史为鉴,可以知兴衰:历史上的每一天,都是喜忧参半:可以了解历史的这一天发生的事件,借古可以鉴今,历史是不能忘记的. 这里你可以阅读每一天的历史故事,每天发生了哪些大事,历史上谁诞生和逝世了,每天都是什么纪念日.节日,在这里你都可以容易浏览到!在我们生活中,日历

测试-微信公众平台开发多媒体接口下载视频文件如何使用?

问题描述 微信公众平台开发多媒体接口下载视频文件如何使用? 在测试接口上调用该方法返回错误信息 解决方案 http://www.cnblogs.com/txw1958/p/weixin80-upload-download-media-file.html 解决方案二: http://mp.weixin.qq.com/wiki/10/78b15308b053286e2a66b33f0f0f5fb6.html

微信公众平台开发入门教程

在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 基础接口消息及事件 微信公众平台PHP SDK 微信公众平台开发模式原理 开发天气预报功能 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+M

微信公众平台开发最佳实践(第2版)

  <微信公众平台开发最佳实践 第2版>微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 方倍工作室已出版本书的第3版电子版,内容更多,价格更优惠,欢迎查看购买,地址:http://www.cnblogs.com/txw1958/p/buy-ebook.html       前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发

Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明     这里所说的高级接口是指面向通过认证的服务号开通的高级功能.     高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账号都可开通) OAuth2.0(相对比较复杂,后面会有专门介绍) 以上所有的接口都包含在Senparc.Weixin.MP.AdvancedAPIs命名空间下. 一些共同的操作 几乎所有的高

微信公众平台开发入门教程(SAE方倍工作室)_Android

我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用启用微信公众平台开发模式基础接口消息及事件微信公众平台PHP SDK微信公众平台开发模式原理开发天气预报功能 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境.申请地址:http://sae.sina.com.cn/ ,使用新浪微博账号可以直接登录SAE,登录后SAE将赠送50