guimcaballero / laravel-folders
动态上传多个文件文件夹
dev-master
2020-05-05 10:15 UTC
Requires
- php: ^7.2.5
- illuminate/support: ^7.0
Requires (Dev)
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-05 20:13:28 UTC
README
这是一个非常简单的包,实现了文件夹功能,您可以将任意数量的文件保存到一个模型中,同时只需要一个列。
文件夹的行为就像您操作系统上的普通文件夹一样,您可以添加、删除和列出文件。添加文件不会删除现有文件。
安装
您可以通过composer安装此包
composer require guimcaballero/laravel-folders
然后运行迁移
php artisan migrate
配置
您可以使用以下命令发布迁移
php artisan vendor:publish --provider="Guimcaballero\LaravelFolders\LaravelFoldersServiceProvider"
示例
这是一个简单的用例,我们希望能够在用户中上传一系列重要文件
在 App\User
<?php namespace App; ... use Guimcaballero\LaravelFolders; class User extends Authenticatable { ... public function importantDocuments() { return $this->morphOne(Folder::class, 'folderable'); } }
然后在 web.php
Route::post('user/uploadImportantFiles', function(Request $request) { $folder = auth()->user()->importantDocuments; $folder->uploadFiles($request->file('files')); dd($folder->getListOfFiles()); });
用法
将文件夹添加到模型
要将文件夹添加到模型,请将以下内容添加到模型类中
public function importantFiles() { return $this->morphOne(Folder::class, 'folderable'); }
创建文件夹
要创建文件夹,请运行
$folder = Folder::createNewRandomFolder(); $user->importantFiles()->save($folder);
列出文件夹中的所有文件
$folder->getListOfFiles();
这将返回一个包含文件夹内文件的数组。
上传多个文件
您可以使用以下命令一次性上传多个文件
$folder->uploadFiles($request->file('files'));
上传单个文件
您可以使用以下命令上传单个文件
$folder->uploadSingleFile($request->file('file'));
删除文件
要删除多个文件,请传递包含文件名的数组
$folder->removeFiles(['importantFile1.pdf', 'importantFile2.pdf']);
删除单个文件
要删除单个文件,请传递文件名
$folder->removeSingleFile('importantFile1.pdf');
## 多个文件夹
您可以在一个类中有多个文件夹,例如
public function importantDocuments() { return $this->morphOne(Folder::class, 'folderable')->where('folderable_group', 'important'); } public function lessImportantDocuments() { return $this->morphOne(Folder::class, 'folderable')->where('folderable_group', 'less_important'); }
然后您在创建文件夹时必须传递相应的组
$folder = Folder::createNewRandomFolder('important'); $user->importantFiles()->save($folder);
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
请随时为此项目做出贡献!
有关详细信息,请参阅 CONTRIBUTING
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件