FastAdmin开发七牛云上传插件

一看官网一个上传插件60大洋,对我这个穷鬼来说还是太贵了,于是乎自己写一个,后面随时用

直接开干

创建插件

php think addon -a aliupload -c create

创建配置

<?php

return [
    [
        'name' => 'region',
        'title' => '获取存储区域',
        'type' => 'select',
        'group' => '七牛',
        'content' => [
            'up.qiniup.com' => '华东-浙江-up.qiniup.com',
            'up-cn-east-2.qiniup.com' => '华东-浙江2-up-cn-east-2.qiniup.com',
            'up-z1.qiniup.com' => '华北-河北-up-z1.qiniup.com',
            'up-z2.qiniup.com' => '华南-广东-up-z2.qiniup.com',
            'up-na0.qiniup.com' => '北美-洛杉矶-up-na0.qiniup.com',
            'up-as0.qiniup.com' => '亚太-新加坡-up-as0.qiniup.com',
            'up-ap-northeast-1.qiniup.com' => '亚太-首尔-up-ap-northeast-1.qiniup.com',
        ],
        'value' => 'up.qiniup.com',
        'rule' => 'required',
        'msg' => '验证失败提示文字',
        'tip' => '字段填写帮助',
        'ok' => '验证成功提示文字',
        'extend' => '',
    ],
    [
        'name' => 'Bucket',
        'title' => '空间名称Bucket',
        'type' => 'string',
        'group' => '七牛',
        'content' => [],
        'value' => 'xxxxx',
        'rule' => '',
        'msg' => '',
        'tip' => '默认选用的Bucket名称',
        'ok' => '',
        'extend' => '',
    ],
    [
        'name' => 'AccessKey',
        'title' => 'AccessKey',
        'type' => 'string',
        'content' => [],
        'group' => '七牛',
        'value' => 'x6V-Q1zYjCxxxxxQ2douc-7',
        'rule' => 'required',
        'msg' => '',
        'tip' => '',
        'ok' => '',
        'extend' => '',
    ],
    [
        'name' => 'SecretKey',
        'title' => 'SecretKey',
        'type' => 'string',
        'content' => [],
        'group' => '七牛',
        'value' => 'WLGw7v6xxxxFJoh-UoTsVn7W2HiC',
        'rule' => 'required',
        'msg' => '',
        'tip' => '',
        'ok' => '',
        'extend' => '',
    ],
    [
        'name' => 'Domain',
        'title' => '访问域名',
        'type' => 'string',
        'content' => [],
        'group' => '七牛',
        'value' => 's0vixxxxx-bkt.clouddn.com',
        'rule' => 'required',
        'msg' => '',
        'tip' => '访问域名',
        'ok' => '',
        'extend' => '',
    ],
];

下载七牛云的包

https://developer.qiniu.com/kodo/1241/php#4

在这里插入图片描述

下载解压后只要Qiniu
在这里插入图片描述
放在这个文件

在这里插入图片描述

添加hook方法

修改Aliupload.php,需要了解TP的钩子或者叫事件,多看看手册

<?php

namespace addons\aliupload;

use app\common\library\Menu;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use think\Addons;

use think\Log;

/**
 * 插件
 */
class Aliupload extends Addons
{

    public function appInit(){
        \think\Loader::addNamespace('Qiniu',ADDON_PATH.'aliupload'.DS.'library'.DS.'Qiniu'.DS);
    }


    public function uploadAfter(&$params){
//        Log::error($params);
        //获取配置
        $config = get_addon_config('aliupload');
        $accessKey =$config['AccessKey'];
        $secretKey = $config['SecretKey'];
        $bucket = $config['Bucket'];

        $auth = new Auth($accessKey, $secretKey);
        $returnBody = '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}';
        $policy = array(
            'returnBody' => $returnBody
        );
//        // 生成上传Token
        $token = $auth->uploadToken($bucket, null, 7200, $policy, true);
//        // 构建 UploadManager 对象
        $uploadMgr = new UploadManager();
        $files = $params->getData();
        $key = ltrim($files['url'],'/');
        //window  测试需要在入口文件加入:define('UPLOAD_PATH', __DIR__ . '/');
        $filePath = UPLOAD_PATH.'/'.$files['url'];
        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath, null, 'application/octet-stream', true, null, 'v2');
        if ($err !== null) {
            var_dump($err);
            Log::error("上传失败");
            Log::error($err);
        }


    }



    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        
        return true;
    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        
        return true;
    }

    /**
     * 插件启用方法
     * @return bool
     */
    public function enable()
    {
        
        return true;
    }

    /**
     * 插件禁用方法
     * @return bool
     */
    public function disable()
    {
        
        return true;
    }



}

好了,现在上传你就可以看见你上传到服务器的文件,在七牛上面也有了。剩下的一些细节就需要自己去操作,比如说删除本地的文件,获取的时候,获取到的连接是七牛的,这个加一个钩子就搞定。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要关闭fastadmin中的七牛云功能,可以按照以下步骤进行操作: 1. 登录到FastAdmin后台管理界面。 2. 在左侧导航菜单中找到并点击「系统设置」选项。 3. 在系统设置页面中,找到并点击「上传设置」选项卡。 4. 在上传设置选项卡中,找到「云存储类型」的设置项。 5. 将「云存储类型」设置为「本地存储」,表示关闭了七牛云。 6. 保存设置并退出系统设置页面。 通过以上步骤,即可将fastadmin中的七牛云功能关闭。此时,系统将使用本地存储来管理和存储上传的文件,而不再使用七牛云。请确保在执行关闭操作之前,已经备份好相关的文件和数据,以免丢失重要信息。 ### 回答2: 要关闭FastAdmin中的七牛云服务,您可以按照以下步骤进行操作: 1. 登录FastAdmin后台管理系统。在网址后加上`/admin`,输入您的管理员账号和密码,然后点击登录按钮。 2. 进入FastAdmin管理后台后,在左侧菜单中找到并点击“系统”选项。 3. 在“系统”菜单下拉列表中选择“设置”选项,然后点击“附件设置”子选项。 4. 在“附件设置”页面中,您会找到一个名为“附件上传驱动”或“七牛云设置”的选项,具体名称可能会有所不同,但一般都会有直接或间接与七牛云相关的描述。 5. 找到并选择“本地存储”或“本地上传”等与七牛云设置相对应的选项。这将切换回本地文件存储,从而关闭七牛云。 6. 确认更改后,点击“保存”按钮以保存设置并关闭七牛云服务。 请注意,关闭FastAdmin中的七牛云服务可能会导致一些功能受限或无法使用,因为七牛云是一种云存储服务,用于存储和管理FastAdmin中的附件文件。但如果您不再需要使用七牛云,或者想要节省成本,关闭它可能是一个合理的选择。 ### 回答3: 要关闭FastAdmin七牛云的集成,可以按照以下步骤进行操作: 1. 登录FastAdmin后台管理系统,进入系统设置界面。 2. 在左侧菜单栏找到并点击「文件」或「存储设置」选项。 3. 在文件存储设置页面中,找到使用七牛云存储的相关选项。 4. 将相应的七牛云存储开关或配置相关的API信息清空或设为无效。具体操作方式可能根据FastAdmin版本的不同而有所差异。 5. 确认保存修改后,重新加载FastAdmin网站。 这样就成功关闭了FastAdmin七牛云的集成。关闭后,FastAdmin将不再使用七牛云的存储服务,而是使用默认的本地存储功能。 如果遇到任何问题,建议参考FastAdmin官方文档或咨询相关技术支持人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值