matchingood/laravel-eloquent-storage

管理文件的Eloquent模型。

v0.2.5 2024-02-06 06:15 UTC

README

轻松管理的Eloquent模型文件

$file = $request->file('file');
$userFile = new UserFile;
$userFile->saveFromUploadedFile($file);

$userFile->getContent(); // the content in the $file

安装

在您的composer.json中,

"matchingood/laravel-eloquent-storage": "^0.2.1"

然后您在config/app.php中注册EloquentStorage。

'providers' => [
    .
    .
    .
    MatchinGood\EloquentStorage\EloquentStorageServiceProvider::class
],

您可以创建配置文件以执行

$ php artisan vendor:publish

然后您可以配置app/eloquentstorage.php

用法

首先,您必须在与您希望它管理的文件相关的表中添加3个特定列。

// original file name
$table->string('file_name');

// unique file name to avoid conflicting original names
$table->string('unique_file_name');

// directory to store directory information
// for using directory parameters on saveConent or saveUploadedFile
$table->string('directory');

然后,您可以使用MatchinGood\EloquentStorage启用eloquet模型来管理文件。

class UserFile extends MatchinGood\EloquentStorage\EloquentStorage
{

}

通过EloquentStorage存储文件有两种方法。

$userFile = new UserFile;

// 1. store text
$userFile->saveContent('file name', 'content');

// 2. store uploaded file
$file = $request->file('file');
$userFile->saveFromUploadedFile($file);

// you can add root directory like below
// in this case with local driver,
// it's gonna be stored at storage/app/root/user_files/xxxxxx
$userFile->saveFromUploadedFile($file, 'root');

然后您可以在表中查看新记录以及您在storage/user_files/xxxxxxx中保存的新文件。

此库还提供响应宏。

$userFile = UserFile::find(1);

return response()->downloadEloquentStorage($userFile);