代码优化

This commit is contained in:
wong
2025-07-10 17:52:01 +08:00
parent 72e8c12dce
commit 381006ddbe

View File

@@ -8,6 +8,7 @@ use EasyWeChat\Factory;
// use EasyWeChat\Kernel\Exceptions\DecryptException;
use EasyWeChat\Kernel\Http\StreamResponse;
use think\Db;
use app\common\util\AliyunOSS;
class PosterWeChatMiniProgram extends Controller
{
public function index()
@@ -46,17 +47,23 @@ class PosterWeChatMiniProgram extends Controller
// 保存小程序码到文件
if ($response instanceof StreamResponse) {
// $filename = 'minicode_' . $taskId . '.png';
// $response->saveAs('path/to/codes', $filename);
// return 'path/to/codes/' . $filename;
// $img = $response->getBody()->getContents();//获取图片二进制流
// $img_base64 = 'data:image/png;base64,' .base64_encode($img);//转化base64
// return $img_base64;
$filename = $response->saveAs('/www/wwwroot/mckb_quwanzhi_com/Server/runtime/img', 'appcode_'.$taskId.'.png');
return $filename;
$savePath = ROOT_PATH . 'runtime/img';
// 确保目录存在
if (!is_dir($savePath)) {
mkdir($savePath, 0755, true);
}
$filename = $response->saveAs($savePath, 'appcode_'.$taskId.'.png');
// 上传到OSS
if ($filename) {
$ossUrl = $this->uploadToOSS($filename);
// 删除本地文件
if (file_exists($filename)) {
unlink($filename);
}
// 如果OSS上传成功返回OSS URL否则返回本地文件路径
return $ossUrl ?: $filename;
}
}
@@ -64,6 +71,35 @@ class PosterWeChatMiniProgram extends Controller
return null;
}
/**
* 上传文件到OSS
* @param string $filePath 本地文件路径
* @return string|false 成功返回OSS URL失败返回false
*/
private function uploadToOSS($filePath)
{
try {
// 生成OSS对象名称
$objectName = AliyunOSS::generateObjectName('appcode_' . time() . '.png');
// 上传到OSS
$result = AliyunOSS::uploadFile($filePath, $objectName);
if ($result['success']) {
// 返回完整的OSS URL
return AliyunOSS::ossUrl . '/' . $objectName;
} else {
// 记录错误日志
\think\facade\Log::error('OSS上传失败: ' . $result['error'] . ' 文件: ' . $filePath);
return false;
}
} catch (\Exception $e) {
// 记录错误日志
\think\facade\Log::error('OSS上传异常: ' . $e->getMessage() . ' 文件: ' . $filePath);
return false;
}
}
// getPhoneNumber
public function getPhoneNumber() {