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

相关推荐
Trainer21071 小时前
十分钟搭建thinkphp开发框架
php·apache·phpstorm·composer
带土12 小时前
PHP 中的正则表达式
正则表达式·php
一人の梅雨2 小时前
买家秀接口深度开发:从内容解析到情感分析的全链路实现
开发语言·php
PHP武器库3 小时前
PHP 高性能队列探索:从 SQLite 到内存,我们该如何选择?
php
探索宇宙真理.6 小时前
DedeCMS命令执行复现&研究 | CVE-2025-6335
经验分享·php·安全漏洞
毕设源码-郭学长15 小时前
【开题答辩全过程】以 PHP茶叶同城配送网站的设计与实现为例,包含答辩的问题和答案
开发语言·php
whltaoin1 天前
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
人工智能·spring·阿里云·向量数据库·rag
Hello.Reader2 天前
优化 Flink 基于状态的 ETL少 Shuffle、不膨胀、可落地的工程
flink·php·etl
XiaoLeisj2 天前
【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优
阿里云·原型模式·rag·spring ai·灵积大模型
Q_Q5110082852 天前
python+springboot+uniapp基于微信小程序的任务打卡系统
spring boot·python·django·flask·uni-app·node.js·php