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

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.lqws.cn/news/173683.html

相关文章:

  • 数学:数的概念是如何发展的?
  • Python训练营打卡 Day46
  • 现代Web安全实践:基于Token与Refresh Token的单点登录(SSO)实现
  • C++11 右值引用:从入门到精通
  • 博弈论概述
  • 深入解析Java中的装箱与拆箱机制
  • Mysql中select查询语句的执行过程
  • SpringBoot 自动化部署实战:CI/CD 整合方案与避坑指南
  • 深克隆java对象的方式
  • 基于 Vue 和 Spring Boot 实现滑块验证码的机器验证
  • 【Linux】awk 命令详解及使用示例:结构化文本数据处理工具
  • python训练营打卡第46天
  • 打造你的 Android 图像编辑器:深入解析 PhotoEditor 开源库
  • windows server 添加自动启动服务
  • 使用阿里云百炼embeddings+langchain+Milvus实现简单RAG
  • PostgreSQL17 编译安装+相关问题解决
  • KAG与RAG在医疗人工智能系统中的多维对比分析
  • 完美搭建appium自动化环境
  • PyQt常用控件的使用:QFileDialog、QMessageBox、QTreeWidget、QRadioButton等
  • html表格转换为markdown
  • 【cmake】单配置生成器与多配置生成器的构建安装问题分析
  • Ubuntu Cursor升级成v1.0
  • C文件操作2
  • 什么是敏捷项目管理?敏捷项目管理有哪些功能?
  • 《100天精通Python——基础篇 2025 第5天:巩固核心知识,选择题实战演练基础语法》
  • 抽象工厂模式深度解析:从原理到与应用实战
  • android 之 MediaExtractor
  • JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制
  • 使用 Windows 完成 iOS 应用上架:Appuploader对比其他证书与上传方案
  • uniapp map组件的基础与实践