微信公眾平台開發(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格式

Ÿ  語音(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
}

 至於回復相應的消息,就是利用消息接口或者客服接口,構造成相應的消息就行了,和構造文本,圖文消息的方法是一樣的。

 

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

方倍工作室微信公眾平台賬號關注方法:
1. 微信通訊錄-添加朋友-查找公眾號-搜索“方倍工作室”
2. 微信通訊錄-添加朋友-搜號碼-輸入“pondbaystudio”
3. 使用微信掃描下面的二維碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM