PHP code example of lfyw / file-manager

1. Go to this page and download the library: Download lfyw/file-manager library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

lfyw / file-manager example snippets


return [
    'path' => env('FILE_PATH', 'public/uploads'),
    'clear_sync_file' => env('FILE_CLEAR', true)
];

return [
    'path' => env('FILE_PATH', 'public/uploads'),
    'clear_sync_file' => env('FILE_CLEAR', true),
    'connection' => 'test'
];

class FilesController extends Controller
{
    public function store(Request $request)
    {
        return \Lfyw\FileManager\Models\File::upload($request->file('file'), $keepOriginalName = false, $guessExtension = true);
    }
}



namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Lfyw\FileManager\Traits\HasFiles;

class User extends Authenticatable
{
    use HasFactory, Notifiable, HasFiles;

$user = User::find(1);
$user->attachFiles();//空参数或者会被判定为false的参数(如:[],null)什么都不会做,意味着你无需额外判定参数是否存在或是否为空
$user->attachFiles(1);//关联文件 id 为 1 的文件
$user->attachFiles([1,2]);//可以同时关联多个文件,传递文件的 id 数组
$user->attachFiles(1, 'avatar');//关联一个被标识为 avatar 的文件
$user->attachFiles([1 => 'avatar', 2 => 'background'])//同时关联多个不同标识的文件

$user = User::find(1);
$user->syncFiles();//空参数或者会被判定为false的参数(如:[],null)什么都不会做,意味着你无需额外判定参数是否存在或是否为空
$user->syncFiles(1);//同步关联文件 id 为 1 的文件
$user->syncFiles([1,2]);//可以同步关联多个文件,传递文件的 id 数组
$user->syncFiles(1, 'avatar');//同步关联一个被标识为 avatar 的文件
$user->syncFiles([1 => 'avatar', 2 => 'background'])//同步关联多个不同标识的文件


$user = User::find(1);
$user->detachFiles(1);//移除文件 id 为 1 的关联
$user->detachFiles([1,2]);//移除文件 id 为 1 和 2 的关联
$user->detachFiles(type: 'avatar');//移除标识为 `avatar` 的关联
$user->detachFiles();//移除所有关联

$user = User::find(1);
//追加文件
$user->addFiles(1);
$user->addFiles([2]);
$user->attachFiles();
//兼容链式调用与方法本来的所有传参形式:
$user->addFiles([11 => 'avatar'])->attachFiles(12, 'background');
//同样适用于 syncFiles() syncFilesWithoutDetaching()
$user->addFiles([7 => 'avatar'])->syncFiles(9, 'background');

public function store(Request $request)
{
    $user = User::find(1);
    $user->forceSync()->syncFiles($request->file_ids);//如果 $request->file_ids 为空,则同步后不关联任何文件。
}

$user = User::withFiles('avatar')->get();

$user = User::find(1);
$user->loadFiles('avatar');

$count = User::withFilesCount()->get();

$count = $user->loadFilesCount('type1');
shell script
$ php artisan migrate
shell script
$ php artisan vendor:publish --tag='migrations'
shell script
$ php artisan vendor:publish --tag='config'