公众平台开发(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
参数说明
参数是否必须说明
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格式
语⾳(voice):256K,播放长度不超过60s,⽀持AMR\MP3格式
视频(video):1MB,⽀持MP4格式
缩略图(thumb):64KB,⽀持JPG格式
媒体⽂件在后台保存时间为3天,即3天后media_id失效。对于需要重复使⽤的多媒体⽂件,可以每3天循环上传⼀次,更新media_id。⼆、下载多媒体⽂件
可调⽤本接⼝来获取多媒体⽂件。请注意,视频⽂件不⽀持下载,调⽤该接⼝需http协议。
下载⽂件使⽤获取图⽚数据,写⼊新⽂件的⽅法。
http请求⽅式: GET
参数说明
参数是否必须说明
access_token是调⽤接⼝凭证
media_id是媒体⽂件ID
下载图⽚
代码实现
返回HTTP头⽰例如下
{
"url": "file.api.weixin.qq/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnv    "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": "file.api.weixin.qq/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnv    "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,
connect下载"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": "file.api.weixin.qq/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnv    "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. 使⽤扫描下⾯的⼆维码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。