aditiya / yii2-easyfilemanager
轻松管理和上传文件。特性包括rbac验证和分类标签。使用时需要数据库。
v1.1.0
2022-08-01 04:00 UTC
Requires
- thamtech/yii2-uuid: *
- yiisoft/yii2: ~2.0.0
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
扩展控制器来创建自定义urldbConnection
: 自定义数据库连接
要上传文件,请使用 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]); } }
您可以在自己的模型中同时使用 EasyfilemanagerTrait
和 Easyfilemanagerinterface
。
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]];