>  기사  >  위챗 애플릿  >  WeChat 공개 플랫폼 개발 멀티미디어 파일 업로드 및 다운로드

WeChat 공개 플랫폼 개발 멀티미디어 파일 업로드 및 다운로드

高洛峰
高洛峰원래의
2017-02-22 15:40:444553검색

위챗 공개 계정은 사진, 음성, 동영상에 답글을 달 때 media_id를 사용하여 관련 파일을 호출합니다. 이를 어떻게 개발하고 구현하는지 물어보는 친구들이 많습니다. 이 기사에서는 WeChat 공개 플랫폼 개발 과정에서 멀티미디어 파일을 업로드하고 다운로드하는 방법을 소개합니다.

1. 멀티미디어 파일 업로드

공식 계정에서는 이 인터페이스를 호출하여 사진, 음성, 동영상 및 기타 파일을 업로드한 후, 서버는 해당 media_id를 반환하며, 공식 계정은 이 media_id를 기반으로 멀티미디어를 얻을 수 있습니다. media_id는 재사용 가능하며 이 인터페이스를 호출하려면 http 프로토콜이 필요합니다.

보통 파일 업로드는 html 폼을 통해 이뤄지지만 CURL을 이용하면 브라우저를 통하지 않고 서버 측에서 직접 POST 형식으로 제출해 파일 업로드 기능을 완성할 수 있다.

주의할 점은 파일 이름은 완전 절대 경로여야 하며, 절대 경로 앞에는 "@"가 와야 구분 가능합니다. .

Windows 서버의 형식 예는 "@F:israeluploadwinter.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等信息

매개변수

필요한가요

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

access_token

통화 인터페이스 자격 증명

입력

미디어 파일 유형이며 각각 그림( 이미지), 음성, 비디오 및 썸네일

미디어

다음과 같습니다

파일 이름, 파일 길이, 콘텐츠 유형 및 기타 정보를 포함한 양식 데이터의 미디어 파일 식별

사진 업로드微信公众平台开发  上传下载多媒体文件

결과 반환

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

음성 업로드微信公众平台开发  上传下载多媒体文件

결과 반환

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

동영상 업로드微信公众平台开发  上传下载多媒体文件

결과 반환

参数

描述

type

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

media_id

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

created_at

媒体文件上传时间戳

{    "type": "video",
    "media_id": "Jm-Wq0nXtA_oN1qNydQRP03dCsB0R2t5gCHDM3QNkBmMRE1WBaorVJNQTBRHvK9-",
    "created_at": 1389794768}
썸네일 업로드결과 반환
{    "type": "thumb",
    "thumb_media_id": "2RhP0caRKHVOmZO5AKelHkK--vqPPwgUaRp5-WE63dvmmPRWiYVKgvNblIp_gv79",
    "created_at": 1389794771}
매개변수 설명 tr>
매개변수 설명

유형

미디어 파일 유형 이미지, 음성, 비디오 및 썸네일 포함(주로 비디오 및 음악 형식의 썸네일에 사용됨)

media_id

미디어 파일을 업로드한 후 획득 시 고유 식별자 td>

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中文网!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.