文件上传

This commit is contained in:
2025-10-20 18:11:39 +08:00
parent f9a51177fd
commit 14af58889f
2 changed files with 53 additions and 10 deletions

View File

@@ -53,12 +53,19 @@ class UploadFile extends Upload
$objectName = $fileName . '_' . $uniqueId . '.' . $extension;
// 调用父类方法上传到 OSS
$result = $this->uploadFile($objectName, $filePath);
// $result = $this->uploadFile($objectName, $filePath);
// if (!$result) {
// return V(0, '上传失败请检查OSS配置或网络', null);
// }
// // 返回访问地址
// $url = $this->config['oss_cdn_url'] . $objectName;
// 调用父类方法上传到 COS
$result = $this->uploadFileCos($objectName, $filePath);
if (!$result) {
return V(0, '上传失败请检查OSS配置或网络', null);
return V(0, '上传失败,请检查COS配置或网络', null);
}
// 返回访问地址
$url = $this->config['oss_cdn_url'] . $objectName;
$url = $result;// 返回访问地址 具体访问地址根据你的实际配置来定这个需要修改 等域名通过备案后修改
return V(1, '上传成功', ['url' => $url]);
} catch (\Exception $e) {
return V(0, '上传异常: ' . $e->getMessage(), null);

View File

@@ -5,6 +5,7 @@ namespace app\common\controller;
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\Core\OssException;
use Qcloud\Cos\Client;
class Upload
{
@@ -12,21 +13,38 @@ class Upload
private $config;
private $ossClient; // 修复点:添加该属性声明
private $bucket;
private $cosbucket;
public function __construct()
{
$this->config = get_system_config();
$endpoint = $this->config['oss_region_url'];
$this->bucket= $this->config['oss_bucket_name'];
// $this->config = get_system_config();
$endpoint = get_system_config_value('oss_region_url');
$this->bucket= get_system_config_value('oss_bucket_name');
$ossId = get_system_config_value('oss_access_key_id');
$ossSecret = get_system_config_value('oss_access_key_secret');
$region = get_system_config_value('cos_region');
$cosId = get_system_config_value('cos_id');
$cosSecret = get_system_config_value('cos_secret');
$this->cosbucket= get_system_config_value('cos_bucket_name');
//获取配置
$this->ossClient = new OssClient(
$this->config['oss_access_key_id'],
$this->config['oss_access_key_secret'],
$ossId,
$ossSecret,
$endpoint
);
// 初始化COS客户端
$this->cosClient = new Client([
'region' => $region, // 你的存储桶所属地域,如 `ap-guangzhou`
'credentials' => [
'secretId' => $cosId,
'secretKey' => $cosSecret,
],
]);
}
/*
* 上传文件
* 上传文件 -阿里oss
* 参数:
* $bucket: 存储空间名称
* $object: 文件名
@@ -44,5 +62,23 @@ class Upload
}
}
/*
* 上传文件 -腾讯cos
*/
public function uploadFileCos($object, $filePath) {
try {
$result = $this->cosClient->putObject([
'Bucket' => $this->cosbucket,
'Key' => $object,
'Body' => fopen($filePath, 'rb'),
]);
// 上传成功,可以处理$result
return $result['Key']; // 或根据你的需要拼接访问URL
} catch (OssException $e) {
return false; // 上传失败返回false并记录错误信息例如echo $e->getMessage();
}
}
}