tatter / 文件
文件上传和管理,适用于CodeIgniter 4
资助包维护!
tattersoftware
paypal.me/tatter
Requires
- php: ^7.4 || ^8.0
- codeigniter4/authentication-implementation: ^1.0
- enyo/dropzone: ^6.0
- tatter/exports: ^3.0
- tatter/frontend: ^1.0
- tatter/permits: ^3.0
- tatter/preferences: ^1.0
- tatter/thumbnails: ^2.0
Requires (Dev)
- codeigniter4/devkit: ^1.0
- codeigniter4/framework: ^4.1
- tatter/imposter: ^1.0
Suggests
- tatter/audits: Adds logging for user changes to Files database rows.
This package is auto-updated.
Last update: 2024-09-17 23:37:05 UTC
README
文件上传和管理,适用于CodeIgniter 4
快速入门
- 使用Composer安装:
> composer require tatter/files
- 迁移数据库:
> php spark migrate -all
- 数据库种子:
> php spark db:seed "Tatter\Files\Database\Seeds\FileSeeder"
- 开始管理文件: https://example.com/files
功能
文件模块是一组自包含的路由和函数集,可以为任何项目添加上传和CRUD控制。它使用DropzoneJS进行拖放上传,并支持生成文件缩略图和将文件导出到各种目的地的多种扩展。
安装
通过Composer轻松安装以利用CodeIgniter 4的自动加载功能,并始终保持最新状态
> composer require tatter/files
或者,通过下载源文件并将目录添加到
文件下载并包含在自动加载中后,运行任何库迁移以确保数据库正确设置
> php spark migrate --all
运行种子来安装必要的数据库设置
php spark db:seed "Tatter\Files\Database\Seeds\FileSeeder"
最后,运行框架的发布命令以将资源复制到您的公共目录
php spark publish
注意:您可能需要调整您的.mjs
文件。
配置(可选)
可以通过扩展其配置文件来更改库的默认行为。将
注意:如果您的项目是跟踪仓库的一部分,您可能希望将文件存储添加到您的
writable/files/*
!writable/files/index.html
用法
默认路由
- files/index - 如果用户允许
mayList()
,则显示所有文件,否则尝试回退到当前登录用户 - files/user/{userId} - 显示单个用户的所有文件;如果没有提供用户ID,则默认为当前登录用户
- files/thumbnail/{fileId} - 显示文件的缩略图
CRUD
- files/new - 基本的Dropzone表单
- files/upload - 接受来自Dropzone的AJAX上传请求
- files/delete/{fileId} - 删除文件
- files/rename/{fileId} - 接受POST数据以重命名文件
支持的格式
- ?format=cards - 默认视图,具有响应式布局的缩略图
- ?format=list - 以表格格式显示文件的效率列表
- ?format=select - 可用于创建可选文件,例如作为表单的一部分
访问控制
此库使用mayAdmin()
添加到用户或组以实现全局文件访问。
默认情况下,
扩展
Controllers/Files.php 是模块的核心,使用级联选项来选择在何时显示哪些文件。这个控制器有一个 setData()
方法,允许你拦截此过程,在任何时候提供自己的设置。只需扩展控制器到你的自定义版本,然后提供你想要的所有更改,接着是 display()
方法。例如:
<?php namespace App\Controller; class WidgetFiles { public function index($widgetId) { $this->setData([ 'format' => 'cards', 'files' => model(WidgetModel::class)->getFiles($widgetId), 'layout' => 'manage', ]); return $this->display(); } }
这些是 setData()
的默认选项,但你也可以在你的视图中提供任何其他需要的项。
source
- 发起调用的控制器方法的名称layout
- 要使用的视图布局(见 Config/Files.php)files
- 要显示的文件数组selected
- 预选文件(用于select
格式)userId
- 用于过滤文件的用户的IDusername
- 默认布局标题中显示的用户的显示名ajax
- 是否将请求作为AJAX调用处理(跳过布局包装)search
- 用于过滤文件的搜索词sort
- 文件排序字段order
- 文件排序顺序format
- 文件的显示格式(卡片、列表、选择或你自己的格式!)perPage
- 每页显示的项目数page
- 页码(留空null
以使用默认分页器处理)pager
- 处理分页的Pager
实例access
- 文件是否可以被修改,"管理" 或 "显示"exports
- 文件可能被发送到的目的地(见Tatter\Exports
)bulks
- 一组文件的批量目的地(见Tatter\Exports
)