微信公眾平台開發 上傳下載多媒體文件

高洛峰
發布: 2017-02-22 15:40:44
原創
4490 人瀏覽過

微信公眾帳號在回覆圖片、語音、影片的時候,將使用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

參數說明

type

#參數

是否必須

說明

access_token

呼叫介面憑證

媒體檔案類型,分別有圖片(image)、語音(voice)、視訊(video)和縮圖(thumb)

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

#media

#form-data中媒體檔案標識,有filename、filelength、content-型等資訊

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

# 上傳圖片

微信公众平台开发  上传下载多媒体文件 返回結果

{    "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

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}
登入後複製

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

更多微信公众平台开发  上传下载多媒体文件 相关文章请关注PHP中文网!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!