ThinkPHP6 使用腾讯云cos(对象存储)上传图片
2022-11-24 11:10:29
160
{{single.collect_count}}

首先要使用腾讯云cos的前置就是在腾讯云进行一个注册绑定,然后

打开官方文档

找到SDK文档,php专区

在php专区会有快速入门,我这里是通过composer安装的扩展包

  1. 打开终端。

  2. 执行以下命令,下载 Composer。

    curl -sS https://getcomposer.org/installer | php
  3. 创建一个名为 composer.json的文件,内容如下:

    {"require": {"qcloud/cos-sdk-v5": ">=2.0"}}
  4. 执行以下命令,使用 Composer 安装。

    php composer.phar install

使用该命令后会在当前目录中创建一个 vendor 文件夹,里面包含 SDK 的依赖库和一个 autoload.php 脚本,方便在项目中调用。

调用ThinkPHP6的文件上传

$file = request()->file('image');// 上传到本地服务器$savename = \think\facade\Filesystem::putFile( 'topic', $file);

建立一个配置文件,封装

static function file($savename){//腾讯云cos$secretId = "**********************"; //"云 API 密钥 SecretId";$secretKey = "*****************"; //"云 API 密钥 SecretKey";$region = "ap-shanghai"; //设置一个默认的存储桶地域$cosClient = new Client(array('region' => $region,'schema' => 'http', //协议头部,默认为http'credentials' => array('secretId' => $secretId,'secretKey' => $secretKey)));//设置一个对象键(尽量不包含特殊符号)$keyv = rand(0,99999999);# 上传文件### 上传文件流try {$bucket = "******-**********"; //存储桶名称 格式:BucketName-APPID$key = $keyv; //此处的 key 为对象键,对象键是对象在存储桶中的唯一标识$srcPath = "./uploads/".$savename;//本地文件绝对路径$file = fopen($srcPath,'rb');if ($file) {$cosClient->Upload($bucket = $bucket,$key = $key,$body = $file);}} catch (\Exception $e) {echo "$e\n";}//拼接存储路径$path = /*腾讯云网址*/'.'上方对象名'.'//*设定格式名*/';return $path;}}

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}