当前位置: 首页 > news >正文

fastadmin 文件上传腾讯云

1-安装腾讯云SDK

composer require qcloud/cos-sdk-v5

2-腾讯云配置

<?phpnamespace app\common\controller;use Qcloud\Cos\Client;
use think\Controller;
use think\Db;class Tencent extends Controller
{/*** 上传文件* @param $config* @param $key* @return array*/public function uploadToTencentCloud( $config,$key = null) {$secretId = $config['tencent_secretid'];$secretKey = $config['tencent_secretkey'];$region = $config['tencent_area']; // 例如 ap-beijing, ap-guangzhou$bucket = $config['tencent_bucket'];$data = $this->request->file();$info = $data['file']->getInfo();$parts = explode('.', $info['name']);$extension = end($parts);$filename=hash('md5', uniqid()).mt_rand(1,99).'.'.$extension;$cosClient = new Client(['region' => $region,'credentials' => ['secretId'  => $secretId,'secretKey' => $secretKey],]);try {$result = $cosClient->putObject(['Bucket' => $bucket,'Key' => $key ?: $filename,'Body' => fopen($info['tmp_name'], 'rb')]);if ($result!==false) {$domain=$config['tencent_domain'];Db::name('attachment')->insert(['filesize'    => $info['size'],'imagetype'   => $info['type'],'imageframes' => 0,'mimetype'    => $info['type'],'filename'    => $filename,'url'         => $result['Key'],'createtime'  => time(),'updatetime'  => time(),'uploadtime'  => time(),'storage'     => 'tencent','sha1'        => '','type'        => 3,'type_url'    => $domain,'extparam'    => '',]);return ['code' => 1, 'msg' => '上传完成', 'data' => ($domain . $result['Key'])];}return ['code' => 0, 'msg' => '上传失败'];} catch (\Exception $e) {// 异常处理return ['code' => 0, 'msg' => $e->getMessage()];}}public function deleteOne($config,$key = null){$region = $config['tencent_area']; // 例如 ap-beijing, ap-guangzhou$secretId = $config['tencent_secretid'];$secretKey = $config['tencent_secretkey'];$bucket = $config['tencent_bucket'];// 初始化COS客户端$cosClient = new Client(['region' => $region,'credentials' => ['secretId'  => $secretId,'secretKey' => $secretKey],]);try {// 删除文件$result = $cosClient->deleteObject(array('Bucket' => $bucket,'Key' => $key // 要删除的文件对象键,例如:'exampleobject.txt'));Checking::writeLog(json_encode($result),'删除成功','tencent.log');// 输出结果} catch (\Exception $e) {// 输出错误信息Checking::writeLog($e->getMessage(),'删除出错','tencent.log');}}
}

接下来修改fastadmin 上传文件  api/controller/Common.php 文件下的 upload 方法

然后修改附件选择器 admin/controller/general/Attachment.php 下的index方法

http://www.lryc.cn/news/436306.html

相关文章:

  • 《机器学习》—— PCA降维
  • 植物三萜皂苷生物合成途径及调控机制研究进展-文献精读48
  • server 2016搭建FTP服务
  • 物理学基础精解【4】
  • 【区块链 + 人才服务】Blockchain Workshop- 区块链编程实践平台 | FISCO BCOS应用案例
  • Java面试篇基础部分-Java中常用的I/O模型
  • 如何使用python运行Flask开发框架并实现无公网IP远程访问
  • 第三届828 B2B企业节开幕,大腾智能携手华为云共谱数字化新篇章
  • Linux网络编程IO管理
  • SpringCloud集成ELK
  • 【卷起来】VUE3.0教程-06-组件详解
  • JS Web
  • 【Linux】传输层协议——UDP
  • 算法学习攻略总结 : 入门至进阶,通关之路指南
  • 《卷积神经网络 CNN 原理探秘》
  • C#获取计算机信息
  • 派遣函数 - 通过设备链接打开设备
  • Vue 2 中的 `$set` 方法详解
  • 掌握Hive函数[2]:从基础到高级应用
  • 水壶问题记录
  • spring综合性利用工具-SpringBootVul-GUI(五)
  • 2024年9月12日(k8s环境及测试 常用命令)
  • 卫生间漏水原因很多,切莫病急乱投医
  • IEEE 802.11a OFDM系统的仿真(续)
  • Linux cut命令详解使用:掌握高效文本切割
  • c++11新特性——endable_shared_from_this
  • 小程序的右侧抽屉开关动画手写效果
  • vue3中el-table中点击图片放大时,被表格覆盖
  • GO学习笔记(4) strconv/time
  • 课程管理系统-数据库-基于MySQL的数据库课程设计