pozitronik/yii2-filestorage

YII2 的文件存储模块

安装数: 3 170

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 2

开放问题: 0

类型:yii2-extension

1.0.2.2 2022-09-15 11:02 UTC

This package is auto-updated.

Last update: 2024-09-15 15:30:23 UTC


README

YII2 的文件存储模块

安装

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

运行

php composer.phar require pozitronik/yii2-filestorage "dev-master"

或添加

"pozitronik/yii2-filestorage": "dev-master"

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

要求

Yii2, PHP >= 7.4.0

使用方法

模块的配置应该在 web.php 和 console.php 中设置(以确保正确执行迁移)

'filestorage' => [
	'class' => FSModule::class,
	'defaultRoute' => 'index',
	'params' => [
		'tableName' => 'sys_file_storage',//используемая таблица хранения метаданных
		'tableNameTags' => 'sys_file_storage_tags',//используемая таблица хранения тегов
		'base_dir' => '@app/web/uploads/',//каталог хранения файлов
		'models_subdirs' => true,//файлы каждой модели кладутся в подкаталог с именем модели
		'name_subdirs_length' => 2//если больше 0, то файлы загружаются в подкаталоги по именам файлов (параметр регулирует длину имени подкаталогов)
	]
]

配置后执行迁移

yii migrate --migrationPath=@vendor/pozitronik/yii2-filestorage/migrations

逻辑:将 FileStorageTrait 添加到任何 Model::class 的子类中。它会给类添加属性UploadedFile $uploadFileInstance,以及以下方法和

    uploadFile(array $tags = [], string $instanceName = 'uploadFileInstance'):array //добавление файла с заданным набором тегов.

    files(?array $tags = null):array //получение списка загрузок по заданному набору тегов.

多文件上传尚未实现。

通过 uploadFile 上传时,上传将绑定到模型。对于 ActiveRecord,绑定直接到类实例,对于普通模型,绑定到整个类。标签是添加到上传的任意标签,一个上传可以添加任意数量的标签。一个模型可以添加任意数量的带有相同标签的上传。通过这种方式实现了版本控制:最后一个上传被视为最新版本,其他被视为旧版本,可以单独访问)。

files() 方法将返回模型的所有上传列表(可选 -- 只按指定的标签)。每个上传都可用

  • 方法 download() -- 发送与上传绑定的文件的下载
  • 属性 $versions -- 返回这个上传的版本列表(其中 0 是最新版本)。

示例在 @vendor/src/controllers/IndexController.php,其中展示了所有功能。

对于直接上传,指定属性 fileUploadInstance 并执行 save()