hamidrezaniazi / upolo
Laravel 文件上传包。
3.0.0
2022-04-23 15:59 UTC
Requires
- php: ^8.0
- illuminate/support: ^9.0
Requires (Dev)
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-23 21:29:01 UTC
README
安装
您可以通过 composer 安装此包。
composer require hamidrezaniazi/upolo
您可以使用以下命令发布迁移:
php artisan vendor:publish --provider="Hamidrezaniazi\Upolo\UpoloServiceProvider" --tag="migrations"
发布迁移后,您可以运行迁移来创建文件表:
php artisan migrate
用法
您可以使用门面持久化上传的文件。
$file = Upolo::upload($uploadedFile)
如果您想在持久化文件时添加选项到文件模型中,请使用这个:
$file = Upolo::upload($uploadedFile, $user, $owner, $disk, $flag)
所有者与文件相关联,并应实现 HasFileInterface 并使用类似这样的 HasFileTrait:
<?php class Owner extends Model implements HasFileInterface { use HasFileTrait;
可用的筛选作用域包括
//Filter by owner Upolo::whereOwnerIs($owner)->get(); //Filter by owner id Upolo::whereOwnerIdIs($ownerId)->get(); //Filter by owner type Upolo::whereOwnerTypeIs($ownerType)->get(); //Filter by creator Upolo::whereCreatorIs($creator)->get(); //Filter by creator id Upolo::whereCreatorIdIs($creatorId)->get(); //Filter by flag Upolo::whereFlagIs($flag)->get(); //Filter by type Upolo::whereTypeIs($type)->get();
类型将自动根据 MIME 类型填充,包括图像、视频、应用程序等。
您还可以通过控制器中的请求过滤文件。以下键可用于过滤,您可以通过查询字符串发送它们:
- owner_id
- owner_type
- creator_id
- type
- flag
对于请求过滤,您控制器的索引函数应如下所示:
<?php class FileController extends Controller { /** * @param FileFilters $filters * @return AnonymousResourceCollection */ public function index(FileFilters $filters): AnonymousResourceCollection { return FileResource::collection(File::filter($filters)->paginate()); }
使用 delete 方法可以从存储和数据库中删除文件。
$file->delete();
测试
composer test
变更日志
请参阅变更日志获取更多最近更改的信息。
贡献
请参阅贡献指南以获取详细信息。
安全性
如果您发现任何安全问题,请通过hamidrezaniazi@yahoo.com 发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件。