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

简介: 微信公众账号在回复图片、语音、视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现。本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件。   一、上传多媒体文件 公众号可调用本接口来上传图片、语音、视频等文件到微信服务器,上传后服务器会返回对应的media_id,公众号此后可根据该media_id来获取多媒体。

微信公众账号在回复图片、语音、视频的时候将使用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. 使用微信扫描下面的二维码

相关文章
|
1月前
|
小程序 前端开发 数据可视化
微信小程序云开发入门教程-全局文件介绍
微信小程序云开发入门教程-全局文件介绍
|
4月前
|
小程序 PHP
微信公众号开发(一)打通服务器与微信之间的通信
说来惭愧PHP做了这么久,好像就没有从头开发过一个微信公众号,这次刚好有机会从头接入开发一个完整的公众号,也不能说完整,但是这些微信的接口我基本上都试一试~看看大概是什么情况。 首先:打通服务器与微信之间的通信。
55 0
|
5月前
|
JavaScript 前端开发 小程序
mpvue踩坑-微信开发工具无法支持vue文件
mpvue踩坑-微信开发工具无法支持vue文件
55 0
|
1月前
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
85 0
|
1月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
31 0
|
1月前
|
小程序
微信小程序下载代码
微信小程序下载代码
|
3月前
|
小程序 JavaScript 前端开发
微信小程序有几个文件
微信小程序通常由多个文件组成,主要包括以下几种类型的文件:
75 1
|
3月前
|
XML Go 数据格式
【微信公众号开发】基于golang的公众号开发——接入消息自动回复接口
【微信公众号开发】基于golang的公众号开发——接入消息自动回复接口
126 0
|
4月前
|
JSON 小程序 前端开发
简单描述下微信小程序的相关文件以及类型?
简单描述下微信小程序的相关文件以及类型?
72 1
|
4月前
|
小程序 PHP 开发者
微信公众号开发(八)生成带参数二维码,以及将二维码下载至本地
微信的二维码真是个神奇的东西。在我们开发中,应用也是很多~ 用户扫描带场景值(参数)二维码时,可能推送以下两种事件:
63 1

热门文章

最新文章