rdx / laravel-file-manager
Laravel 文件管理 API(无 UI)
dev-master
2021-05-07 19:06 UTC
This package is auto-updated.
Last update: 2024-09-08 02:06:20 UTC
README
跟踪文件及其使用情况。默认使用 SQL 后端。
安装
- 发布配置
php artisan vendor:publish
- 可选地修改配置
config/filemanager.php
- 安装模式(SQL 提供者,但你可以自己创建)
^ 这将创建php artisan migrate
files
和files_usage
表。 - 添加服务提供者
rdx\filemanager\FileManagerServiceProvider::class
- 注入服务
public function store(FileManager $files)
保存上传
ManagedFile
记录将是文件的主要来源,而不是文件系统。
$uploaded = $request['picture']; // Illuminate\Http\UploadedFile
$managed = $files->saveFile($uploaded); // in root dir
$managed = $files->saveFile($uploaded, 'some/sub/dir'); // in sub dir
文件使用
文件使用对于自动删除孤立的文件或确保已使用的文件不被删除非常有用。
通过创建 FileUsageContract
来保持使用情况。已提供了 2 个,但你的应用程序可以创建其他。
要真正自定义文件使用,请将迁移更改以添加使用列,并且创建自定义使用对象以反映这些列。
// Generic FileUsage
$managed->addUsage(new FileUsage('type', 'more', 'specific', 'keys'));
// Save this file's usage for [type, more:specific:keys]
// Model bound ModelFileUsage
$managed->addUsage(new ModelFileUsage($user, 'picture'));
// Save this file's usage for [User, 14:picture]
删除文件
@todo 无法删除已使用的文件 @todo 自动删除未使用的文件
待办事项
- 删除文件
- 使用 Laravel 的文件系统助手
- 某种形式的访问控制?