roui / model-file-manager
一个用于处理模型级别文件存储的Laravel扩展包
v1.0.0
2024-09-21 22:41 UTC
Requires
- php: ^8.3
- intervention/image: ^2.7
README
介绍
ModelFileManager 扩展包是一个Laravel扩展包,旨在处理模型级别的文件存储。它提供了上传、删除和调整文件大小的功能。此外,它支持多个文件集合,并允许您轻松存储和管理文件,如图片、文档等。
需求
- PHP: 8.3 或更高版本
- Laravel: 8.x 或更高版本
- Intervention Image: 2.x
安装
-
通过Composer安装此包
composer require roui/model-file-manager
-
发布配置文件
php artisan vendor:publish --tag=config
-
确保已安装
Intervention Image
包composer require intervention/image
配置
发布配置后,您可以在 config/modelfilemanager.php
中找到配置文件。您可以自定义以下设置:
- storage_disk:默认存储磁盘。
- resized_image_path:存储调整大小后的图片的路径。
- default_collection:文件上传的默认集合名称。
config/modelfilemanager.php
的示例
<?php return [ 'storage_disk' => env('MODEL_FILE_STORAGE_DISK', 'public'), 'resized_image_path' => env('RESIZED_IMAGE_PATH', 'resized/{width}x{height}'), 'default_collection' => env('DEFAULT_FILE_COLLECTION', 'default'), ];
用法
-
上传文件:您可以使用
uploadFile()
方法将文件上传到模型。如有需要,请指定文件、集合和磁盘。$user->uploadFile($file, 'profile_pictures');
-
删除文件:要删除特定集合中的文件,请使用
deleteFile()
方法。$user->deleteFile('path/to/file.jpg', 'profile_pictures');
-
获取文件:从模型的文件列中检索所有文件。
$files = $user->getFiles();
-
从集合获取文件:获取特定集合中的文件,可选调整大小。
$files = $user->getFilesFromCollection('profile_pictures', 300, 300);
-
替换文件:您可以在集合中将旧文件替换为新文件。
$user->replaceFileInCollection($newFile, 'profile_pictures');
-
获取调整大小的图片:通过指定尺寸获取文件的调整大小版本。
$resizedUrl = $user->getResizedImage('path/to/file.jpg', 300, 300);
-
自动将文件转换为数组:当访问时,'files' 属性会自动转换为数组。
$files = $user->files; // Returns array of files
方法概述
- uploadFile($file, $collection = null, $disk = null):将文件上传到集合和磁盘。
- deleteFile($filePath, $collection = null, $disk = null):从集合和磁盘中删除文件。
- getFiles():从模型中获取所有文件。
- getFilesFromCollection($collection = null, $width = null, $height = null, $disk = null):从集合中获取文件,可选调整大小。
- replaceFileInCollection($newFile, $collection = null, $disk = null):在集合中将旧文件替换为新文件。
- getResizedImage($filePath, $width, $height, $disk = null):获取图像的调整大小版本。
- getFirstFileFromCollection($collection = null, $width = null, $height = null, $disk = null):从集合中获取第一个文件。
- getFilesAttribute($value):自动将 'files' 列转换为数组。
许可证
此包是开源软件,许可协议为 MIT 许可证。