|
|
<?php
|
|
|
|
|
|
namespace app\base\service\weixin;
|
|
|
|
|
|
class Media extends Base
|
|
|
{
|
|
|
/**
|
|
|
* 将前台录音文件的MediaId(即serverId)文件下载到本地并上传至OSS
|
|
|
* @param string $media_id 媒体ID
|
|
|
* @date 2022-08-14
|
|
|
*/
|
|
|
public function getRecordMediaToOss($media_id)
|
|
|
{
|
|
|
$weixin_param = get_weixin_config();
|
|
|
$oss_param = get_ali_oss_config();
|
|
|
|
|
|
$oss_class = new \ali\oss\Oss($oss_param);
|
|
|
$media_class = new \tencent\wechat\weixin\Media($weixin_param);
|
|
|
|
|
|
// 定义临时文件存储路径
|
|
|
$file_dirname = './temp';
|
|
|
// 将前台录音文件的MediaId(即serverId)文件下载到服务器
|
|
|
$result = $media_class->getMeidaIdFileToServer($media_id, $file_dirname);
|
|
|
|
|
|
// 记录日志
|
|
|
platformLog([
|
|
|
'media_id' => $media_id,
|
|
|
'file_dirname' => $file_dirname,
|
|
|
'file_name' => ''
|
|
|
], $result, 'easy_wechat_weixin_get_media_file_to_server_uid_' . $this->mid);
|
|
|
|
|
|
// 有错误
|
|
|
if (!$result) {
|
|
|
return sendErrorMessage(2001, '获取临时素材失败');
|
|
|
}
|
|
|
|
|
|
// 定义mp3文件路径和名称
|
|
|
$mp3_file_path = './temp/' . md5(microtime(true)) . '.mp3';
|
|
|
// 将AMR文件转换为MP3文件
|
|
|
$result = amr_to_mp3($result, $mp3_file_path);
|
|
|
|
|
|
// 定义语音object
|
|
|
$oss_file_dirname = 'chat/' . date("Ymd");
|
|
|
// 将本地mp3文件上传到OSS
|
|
|
$result = $oss_class->uploadFile($result, $oss_file_dirname);
|
|
|
|
|
|
return $result['url'];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 将前台图片文件的MediaId(即serverId)文件下载到本地并上传至OSS
|
|
|
* @param string $media_id 媒体ID
|
|
|
* @param int $is_original_name 是否保留原文件名 0--不保留 1--保留
|
|
|
* @date 2022-08-14
|
|
|
*/
|
|
|
public function getImageMediaToOss($media_id, $is_original_name = 0)
|
|
|
{
|
|
|
$weixin_param = get_weixin_config();
|
|
|
$oss_param = get_ali_oss_config();
|
|
|
|
|
|
$oss_class = new \ali\oss\Oss($oss_param);
|
|
|
$media_class = new \tencent\wechat\weixin\Media($weixin_param);
|
|
|
|
|
|
// 定义临时文件存储路径
|
|
|
$file_dirname = './temp';
|
|
|
// 将前台图片文件的MediaId(即serverId)文件下载到服务器
|
|
|
$result = $media_class->getMeidaIdFileToServer($media_id, $file_dirname);
|
|
|
|
|
|
// 记录日志
|
|
|
platformLog([
|
|
|
'media_id' => $media_id,
|
|
|
'file_dirname' => $file_dirname,
|
|
|
'file_name' => ''
|
|
|
], $result, 'easy_wechat_weixin_get_media_file_to_server_uid_' . $this->mid);
|
|
|
|
|
|
// 定义object
|
|
|
$oss_file_dirname = 'chat/' . date("Ymd");
|
|
|
|
|
|
// 是否保留原文件名
|
|
|
$oss_file_name = $is_original_name ? get_file_name($result) : '';
|
|
|
|
|
|
// 将本地mp3文件上传到OSS
|
|
|
$result = $oss_class->uploadFile($result, $oss_file_dirname, $oss_file_name);
|
|
|
|
|
|
return $result['url'];
|
|
|
}
|
|
|
|
|
|
}
|