aditiya/yii2-easyfilemanager

轻松管理和上传文件。特性包括rbac验证和分类标签。使用时需要数据库。

安装: 6

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

v1.1.0 2022-08-01 04:00 UTC

This package is auto-updated.

Last update: 2024-09-29 06:20:30 UTC


README

轻松管理和上传文件。特性包括rbac验证和分类标签。使用时需要数据库。

安装

安装此扩展的首选方法是通过 composer

运行

php composer.phar require --prefer-dist aditiya/yii2-easyfilemanager "*"

或者将

"aditiya/yii2-easyfilemanager": "*"

添加到您的 composer.json 文件的 require 部分。

使用

请确保迁移所有来自 src/migrations 文件夹的表。

一旦扩展安装完成且数据库准备就绪,将其添加到模块配置中

    'modules' => [
        ...
        'efm' => [
            'class' => 'aditiya\easyfilemanager\Module', // Module class
            'usedemo' => true, // if you want to use demo
        ],
        ...
    ]

模块参数包括

  • usedemo : 在/efm中使用演示
  • uploadfilepath : 上传文件文件夹的路径
  • defaultUrl : 获取文件的位置。您可以通过从类 FileController 扩展控制器来创建自定义url
  • dbConnection : 自定义数据库连接

上传文件,请使用 Easyfilemanagermodel。您可以设置其分类、rolelist(默认:['@','?'])和描述。

获取实例对象,您可以使用 getByKey()getByCategory()

获取文件url,请使用 getFileUrl() 函数。

use aditiya\easyfilemanager\models\Easyfilemanager;

...

//on action create
$model = new Easyfilemanager();

if ($this->request->isPost) {
    $model->rolelists = ['admin','writer'];
    $model->category = 'draftpage';
    $model->description = 'draft page image';
    $key = $model->uploadByInstance($model,'file');
    if($key){
        return $this->redirect(['view', 'key' => $key]);
    }
}

您可以在自己的模型中同时使用 EasyfilemanagerTraitEasyfilemanagerinterface

use aditiya\easyfilemanager\interfaces\EasyfilemanagerInterface;
use aditiya\easyfilemanager\traits\EasyfilemanagerTrait;


class ModelExample extends Model implements EasyfilemanagerInterface {
    use EasyfilemanagerTrait;
    ...
    public function getFileUrl()
    {
        return $this->getEfmFileUrl($this->filekey);
    }

    public function uploadFile()
    {
        $is_uploaded = $this->uploadEfmByInstance('filekey');
        if($is_uploaded){
            $this->filekey = $is_uploaded;
            return true;
        }
        return false;
    }

    public function deleteFile()
    {
        return $this->deleteEfm($this->filekey);
    }
    ...
}

更新 1.1.0 : 现在您可以在rolelist中添加,如果您只想让具有特定角色的特定用户访问您的数据。

$model = new Easyfilemanager();
$model->rolelists = ['admin','writer'=>1,'editor'=>[2,3,4]];