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

Scrutinizer Code Quality

跟踪文件及其使用情况。默认使用 SQL 后端。

安装

  1. 发布配置
    php artisan vendor:publish
    
  2. 可选地修改配置
    config/filemanager.php
    
  3. 安装模式(SQL 提供者,但你可以自己创建)
    php artisan migrate
    
    ^ 这将创建 filesfiles_usage 表。
  4. 添加服务提供者
    rdx\filemanager\FileManagerServiceProvider::class
    
  5. 注入服务
    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 的文件系统助手
  • 某种形式的访问控制?