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

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展

扩展入口文件

文件目录 crmeb\services\upload\Upload.php

namespace crmeb\services\upload;use crmeb\basic\BaseManager;
use think\facade\Config;/*** Class Upload* @package crmeb\services\upload* @mixin \crmeb\services\upload\storage\Local* @mixin \crmeb\services\upload\storage\OSS* @mixin \crmeb\services\upload\storage\COS* @mixin \crmeb\services\upload\storage\Qiniu*/
class Upload extends BaseManager
{//...
}

使用上传扩展

use crmeb\services\upload\Upload;$upload = new Upload();//上传文件
$path = '上传目录';
//validate() 方法为验证上传
//move() 调用move方法进行上传
$res = $upload->to($path)->validate()->move();//上传文件流
$fileContent = '文件流内容';
$res = $upload->to($path)->validate()->stream($fileContent);//上传文件流不验证文件
$res = $upload->to($path)->stream($fileContent);

获取第三方上传桶列表

$type 1=本地上传,2=七牛云、3=阿里云oss、4=腾讯云cos

use app\services\other\UploadService;//切换到阿里云oss上传
$type = 3;$upload = UploadService::init($type);//获取桶列表
$list = $upload->listbuckets();var_dump($list);/*
[{"name":"桶名","location":"区域","createTime":"创建时间",}
]
*/

创建第三方上传扩展桶

use app\services\other\UploadService;//切换到阿里云oss上传
$type = 3;$upload = UploadService::init($type);//创建桶
$res = $upload->createBucket('test-bucket-oss');if (false === $res) {var_dump($upload->getError());
} else {//创建成功
}

使用系统自带封装服务

use app\services\other\UploadService;//根据系统设置自动实例化上传类
$upload = UploadService::init();
//执行上传
$path = '';
$res = $upload->to($path)->validate()->move();//上传失败
if (false === $res) {var_dump($upload->getError());
} else {var_dump($res->uploadInfo); //上传文件信息var_dump($res->realName); //文件真实名称var_dump($res->fileName); //文件上传后的名称var_dump($res->filePath); //文件上传后的路径地址
}

附件:https://gitee.com/ZhongBangKeJi/CRMEB

http://www.xdnf.cn/news/12379.html

相关文章:

  • stylus - 新生代CSS预处理框架
  • vue-video-player视频保活成功确无法推送问题
  • 爆炸仿真的学习日志
  • 在MyBatis中设计SQL返回布尔值(Boolean)有几种常见方法
  • Web攻防-SQL注入二次攻击堆叠执行SQLMAPTamper编写指纹修改分析调试
  • 《基于Apache Flink的流处理》笔记
  • Python Einops库:深度学习中的张量操作革命
  • 体制内 AI写作:推荐材料星 AI文章修改润色
  • MySQL:忘记root密码
  • GPU 图形计算综述 (三):可编程管线 (Programmable Pipeline)
  • 【动手学MCP从0到1】2.3 MCP中的Resource和Resource Template服务构建步骤详解
  • 建筑设备一体化监控系统:提升能效与运维效率
  • MySQL 的 redo log 和 binlog 区别?
  • 为 ESP32 解锁跨平台存储识别能力:支持 FAT、NTFS、EXT4、APFS 的轻量级 BlockFS 组件
  • Java中的阻塞队列
  • [arthas]arthas安装使用
  • NVM!(可以快速替换你的node版本)
  • Mysql主从复制原理分析
  • 高性能分布式消息队列系统(三)
  • CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)
  • AtCoder 第408​场初级竞赛 A~E题解
  • 强化学习入门:Gym实现CartPole随机智能体
  • VBA信息获取与处理专题五第一节:利用CDO发送简单邮件
  • AirSim/Cosys-AirSim 游戏开发(二)使用自定义场景
  • Python训练营---Day45
  • DeepSeek 农业大模型:应用潜力与数据隐私保护的双重考量
  • Python训练营---Day44
  • MySQL常用知识总结
  • 三分算法与DeepSeek辅助证明是单峰函数
  • 学习路之PHP--webman安装及使用、webman/admin安装