群控系统服务端开发模式-应用开发-本地上传工厂及阿里云上传工厂开发

news2024/12/6 1:21:49

        记住业务流程图,要不然不清楚自己封装的是什么东西。

一、本地工厂开发

        在根目录下extend文件夹下Upload文件夹下channel文件夹中,我们修改LocalUpload业务控制器。具体代码如下:

<?php
/**
 * 本地上传工厂
 * User: 龙哥 三年风水
 * Date: 2024/11/2/0002
 * Time: 18:16
 */
namespace Upload\channel;
use think\exception\ValidateException;
use think\facade\Filesystem;
use Upload\UploadHandle;
use Error\BaseError;
class LocalUpload extends UploadHandle
{

    /**
     * 上传操作
     * @ param $object 加密后的文件
     * @ param $filePath 临时存放的文件路径
     * @ return mixed
     */
    public function uploadFile($object, $filePath)
    {
        try{
            $savename = Filesystem::disk('public')->putFileAs( 'image', $filePath ,$object);
            return $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/storage/'.$savename;
        }catch (ValidateException $e){
            throw new BaseError($e->getMessage(),50000,200);
        }
    }

    /**
     * 删除操作
     * @ param $object 具体的文件地址
     * @ return mixed
     */
    public function deleteFile($object)
    {
        // TODO: Implement deleteFile() method.
    }
}

        一定要记得配置根目录下config文件夹中的filesystem.php,具体代码如下:

<?php
return [
    // 默认磁盘
    'default' => env('filesystem.driver', 'local'),
    // 磁盘列表
    'disks'   => [
        'local'  => [
            'type' => 'local',
            'root' => app()->getRuntimePath() . 'storage',
        ],
        'public' => [
            // 磁盘类型
            'type'       => 'local',
            // 磁盘路径
            'root'       => app()->getRootPath() . 'public/storage',
            // 磁盘路径对应的外部URL路径
            'url'        => '/storage',
            // 可见性
            'visibility' => 'public',
        ],
        // 更多的磁盘配置信息
    ],
];

二、阿里云工厂开发

        切记在根目录下要安装阿里云OSS插件,具体代码如下:

composer require aliyuncs/oss-sdk-php

        在根目录下extend文件夹下Upload文件夹下channel文件夹中,我们修改AliyunUpload业务控制器。具体代码如下:

<?php
/**
 * 阿里云上传工厂
 * User: 龙哥 三年风水
 * Date: 2024/11/2/0002
 * Time: 18:17
 */
namespace Upload\channel;
use OSS\Core\OssException;
use OSS\OssClient;
use Upload\UploadHandle;
use Error\BaseError;
class AliyunUpload extends UploadHandle
{
    protected $accessKey = '';//access_key
    protected $secretKey = '';//secret_key
    protected $bucket = '';//包
    protected $name = '';//访问地址
    protected $domainName = '';//访问地址

    public function __construct($param)
    {
        $this->accessKey = $param['access_key'];
        $this->secretKey = $param['secret_key'];
        $this->bucket = $param['bucket'];
        $this->name = $param['name'];
        $this->domainName = $param['domain_name'];
    }

    /**
     * 上传操作
     * @ param $object 加密后的文件
     * @ param $filePath 临时存放的文件路径
     * @ return mixed
     */
    public function uploadFile($object, $filePath)
    {
        $ossClient = new OssClient($this->accessKey, $this->secretKey, $this->name);
        if(!$ossClient->doesBucketExist($this->bucket))$ossClient->createBucket($this->bucket);
        try{
            $result = $ossClient->uploadFile($this->bucket, $object, $filePath);
            if($result==true)return empty($this->domainName) ? $result['info']['url'] : $this->domainName.'/'.$object;
        }catch (OssException $e){
            throw new BaseError($e->getErrorMessage(),50000,200);
        }
    }

    /**
     * 删除操作
     * @ param $object 具体的文件地址
     * @ return mixed
     */
    public function deleteFile($object)
    {
        // TODO: Implement deleteFile() method.
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鹧鸪云光伏小程序上线啦

为了适应市场的发展需求&#xff0c;现推出了手机端SaaS版的光伏小程序&#xff0c;里面包含很多免费的小工具&#xff0c;供给我们业务人员、施工人员方便手机上操作&#xff0c;省去了带着电脑的笨重。下面给大家介绍下里面的免费小工具。 功率的换算&#xff1a;这里主要计…

WireShark入门学习笔记

学习视频&#xff1a;WireShark入门使用教程 扩展学习&#xff1a;wireshark分析常见的网络协议 文章目录 WireShark介绍WireShark抓包入门操作WireShark过滤器使用WireShark之ARP协议分析WireShark之ICMP协议TCP连接的3次握手协议TCP连接断开的4次挥手协议WireShark抓HTTP协…

人工智能之人脸识别(人脸采集人脸识别)

文章目录 前言PySimpleGUI 库1-布局和窗口2 文本框组件3-视频处理图片处理数据库操作数据采集&#xff08;重要部分&#xff09;人脸识别&#xff08;综合部分&#xff09; 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;本文主要介绍关于人工智能中GUI和PyMysql相…

qt5将程序打包并使用

一、封装程序 (1)、点击创建项目->库->clibrary &#xff08;2&#xff09;、填写自己想要封装成库的名称&#xff0c;这里我填写的名称为mydll1 &#xff08;3&#xff09;、如果没有特殊的要求&#xff0c;则一路下一步&#xff0c;最终会出现如下文件列表。 (4)、删…

通用方式创建未知文件后缀文件

困惑&#xff1a;比如平时想创一个类似&#xff1a;Dockerfile 文件如何玩&#xff1f; entrypoint.sh 如何玩&#xff1f; windows平台&#xff0c;直接命令行&#xff1a; mac平台或者linux平台也类似

swiper分页器自定义

实现&#xff1a; <template><div class"center-top-swiper"mouseenter"on_bot_enter"mouseleave"on_bot_leave"><swiper :options"swiperOption"ref"mySwiper"><swiper-slide v-for"i in 4&quo…

2025 年使用 Python 和 Go 解决 Cloudflare 问题

作为一名从事网络自动化和爬取工作的开发者&#xff0c;我亲眼目睹了日益复杂的安全性措施带来的挑战。其中一项挑战是 Cloudflare 的 Turnstile CAPTCHA 系统&#xff0c;目前该系统已在全球 2600 多万个网站上使用。这种先进的解决方案重新定义了我们对机器人检测的处理方式&…

windows自启动 映像劫持 屏保

Windows权限维持—自启动&映像劫持&粘滞键&辅助屏保后门 自启动 自启动路径加载 受控windows机器选择当前用户C盘目录下将文件放到这里每到电脑服务器重启就会自动加这次路径下文件 C:\Users\月\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startu…

OTA篇(1)AB系统

制作升级包&#xff1a; 一、整包升级包制作 以tina4.0 A133 b3版型为例 在/target/allwinner/a133-b6/swupdate或者 target/allwinner/generic/swupdate/目录添加如下文件 1.非安全固件 sw-subimgs-ab.cfg swota_file_list( target/allwinner/generic/swupdate/sw-descr…

移远通信推出八款天线新品,覆盖5G、4G、Wi-Fi和LoRa领域

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;再次推出八款高性能天线新品&#xff0c;进一步丰富其天线产品阵容&#xff0c;更好地满足全球客户对高品质天线的更多需求。具体包括5G超宽带天线YECT005W1A和YECT004W1A、5G天线YECT028W1A、4G天…

AI时代,中国高端厨居生活还能怎样进化?

每次走进厨房&#xff0c;看到安静待在角落的各式各样厨电和琳琅满目的食材&#xff0c;想想刚从职场卸甲归来&#xff0c;却还要和这些东西斗智斗勇&#xff0c;都忍不住来上一句&#xff1a;要是有魔法就好了。 有了魔法就能像《哈利波特》里的韦斯莱夫人一样&#xff0c;只…

【HTML】——VSCode 基本使用入门和常见操作

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 零&#xff1a;HTML开发工具VSCode的使用 1&#xff1a;创建项目 2&#xff1a;创建格式模板&#x…

ssm057学生公寓管理中心系统的设计与实现+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;学生公寓管理中心系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生公寓管理…

WAL日志

1.WAL概述 PG WAL&#xff08;Write-Ahead Logging&#xff09;日志是PostgreSQL数据库中的一种重要机制&#xff0c;用于保证数据库的完整性和数据恢复。 1.1定义与功能 WAL日志是PostgreSQL的持久性技术&#xff0c;它将所有对数据库的修改操作&#xff08;如INSERT、UPDA…

算法练习:1658. 将 x 减到 0 的最小操作数

题目链接&#xff1a;1658. 将 x 减到 0 的最小操作数 这道题目的意思就是&#xff0c;给定一个整数数组&#xff0c;和一个x&#xff0c;只能从数组最左边或者最右边进行删除&#xff0c;使得x恰好等于0&#xff0c;并且要操作次数最少的情况&#xff0c;否则返回-1. 这道题直…

51c大模型~合集17

我自己的原文哦~ https://blog.51cto.com/whaosoft/11599989 #关于大模型「越狱」的多种方式 此项目是由伊利诺伊大学香槟分校&#xff08;UIUC&#xff09;的汪浩瀚教授主导&#xff0c;汇集了多名intern的共同努力而成。长久以来&#xff0c;这个跨学科的团队一直在前沿科…

Vue前端开发之自定义动画样式

在上一小节中&#xff0c;我们介绍了动画的实现源于6个类别样式&#xff0c;它们的名称默认前缀是一个“v”字母或者指定的名称&#xff0c;如“sc”&#xff0c;其实&#xff0c;也可以不使用这些固定的类别样式&#xff0c;开发者可以自定义任意的类别样式&#xff0c;供动画…

数据库SQL学习笔记

第 1 章 绪论 1.1 数据库系统概述 1.1.1 四个基本概念 数据库系统(DBS) 定义&#xff1a;是指在计算机系统中引入数据库后的系统构成 构成&#xff1a;数据库&#xff0c;数据库管理系统&#xff08;及其开发工具&#xff09;&#xff0c;应用系统&#xff0c;数据库管理员…

前端好用的网站分享——CSS(持续更新中)

1.CSS Scan 点击进入CSS Scan CSS盒子阴影大全 2.渐变背景 点击进入color.oulu 3.CSS简化压缩 点击进入toptal 4.CSS可视化 点击进入CSS可视化 这个强推&#xff0c;话不多说&#xff0c;看图! 5.Marko 点击进入Marko 有很多按钮样式 6.getwaves 点击进入getwaves 生…

云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例

云集电商&#xff0c;一家聚焦于社交电商的电商公司&#xff0c;专注于‘精选’理念&#xff0c;致力于为会员提供超高性价比的全品类精选商品&#xff0c;以“批发价”让亿万消费者买到质量可靠的商品。面对近年来外部环境的变化&#xff0c;公司对成本控制提出了更高要求&…