Update media.lib.php

src
pvfho47bq 2 months ago
parent 0e3179819f
commit 85b1a28e52

@ -1,61 +1,40 @@
<?php
namespace LaneWeChat\Core;
/**
* 多媒体文件上传与下载管理类
* 该类提供将图片、语音、视频等文件上传到微信服务器的功能,以及从微信服务器下载多媒体文件的功能。
*/
class Media {
/**
* 上传多媒体文件到微信服务器
* 此方法允许上传图片、语音、视频等文件到微信服务器并返回对应的media_id用于后续获取多媒体文件。
* 上传的文件有格式和大小限制,具体如下:
* 图片image: 1M支持JPG格式
* 语音voice2M播放长度不超过60秒支持AMR/MP3格式
* 视频video10MB支持MP4格式
* 缩略图thumb64KB支持JPG格式
* 媒体文件在微信服务器的保存时间为3天之后media_id将失效。
* Auth类用于与微信公众平台进行交互。
* 该类提供了一个方法来获取微信服务器的IP列表通常用于服务器白名单的配置。
* 白名单配置可以帮助确保微信服务器能够正常与当前服务器进行通信。
*
* @param string $filename 要上传的文件的绝对路径
* @param string $type 媒体文件类型可以是图片image、语音voice、视频video和缩略图thumb
* @return array 上传成功后返回包含media_id和其他信息的数组
* 创建者lixuan-it@360.cn
* 用户名lane
* 日期15/4/29
* 时间上午10:51
* 邮箱lixuan868686@163.com
* 网站http://www.lanecn.com
*/
public static function upload($filename, $type) {
// 获取微信公众号的ACCESS_TOKEN
$accessToken = AccessToken::getAccessToken();
// 构造多媒体文件上传的URL
$queryUrl = 'http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=' . $accessToken . '&type=' . $type;
// 准备上传的数据,使用'@'符号指定文件路径
$data = array('media' => '@' . $filename);
// 发起POST请求上传文件
return Curl::callWebServer($queryUrl, $data, 'POST', 1, 0);
}
class Auth {
/**
* 从微信服务器下载多媒体文件
* 此方法根据提供的media_id从微信服务器下载对应的多媒体文件。
*
* @param string $mediaId 微信服务器上的多媒体文件ID
* @return mixed 下载的文件内容或下载失败的错误信息
* 获取微信服务器IP列表
*
* 下载多媒体文件时的HTTP头信息示例
* HTTP/1.1 200 OK
* Connection: close
* Content-Type: image/jpeg
* Content-disposition: attachment; filename="MEDIA_ID.jpg"
* Date: Sun, 06 Jan 2013 10:20:18 GMT
* Cache-Control: no-cache, must-revalidate
* Content-Length: 339721
* 该方法请求微信公众平台的API接口获取微信服务器的IP地址列表。
* 获取到的IP地址列表可以用于设置服务器的白名单以保证微信服务器能够正常访问当前服务器。
*
* 使用curl命令下载多媒体文件的示例
* curl -G "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID"
* @return mixed 返回微信服务器的IP列表通常为JSON格式的数据。
*/
public static function download($mediaId) {
// 获取微信公众号的ACCESS_TOKEN
public static function getWeChatIPList(){
// 获取ACCESS_TOKEN调用AccessToken类中的getAccessToken方法来获取有效的ACCESS_TOKEN。
// ACCESS_TOKEN是调用微信API时必需的授权令牌必须在每次请求时附带。
$accessToken = AccessToken::getAccessToken();
// 构造多媒体文件下载的URL
$queryUrl = 'http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=' . $accessToken . '&media_id=' . $mediaId;
// 发起GET请求下载文件
return Curl::callWebServer($queryUrl, '', 'GET', 0);
// 构造请求微信API的URL拼接获取到的ACCESS_TOKEN。
// API地址为 'https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token='
// 通过此URL可以获取到微信服务器的IP列表。
$url = 'https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=' . $accessToken;
// 使用Curl类的callWebServer方法发起GET请求向微信API请求IP地址列表。
// 'callWebServer' 方法会通过cURL发起HTTP请求返回微信API的响应数据。
// 返回的数据通常是一个包含微信服务器IP地址的JSON格式字符串。
return Curl::callWebServer($url, '', 'GET');
}
}
Loading…
Cancel
Save