skycoder / laravel-filesaver
Laravel Filesaver
dev-master / 2.x-dev
2021-12-09 00:00 UTC
Requires
- php: ^7.2.5
This package is auto-updated.
Last update: 2024-09-30 01:34:54 UTC
README
Laravel Filesaver 是一个媒体保存包,可以帮助您存储任何类型的媒体文件。它非常易于使用和安装。
这是一个小型包,可以轻松简化您的代码。
特色 它会自动将文件/图片名和实际路径保存到您的数据库中
安装过程
composer require skycoder/laravel-filesaver
用法
从您想要存储媒体文件的地方打开控制器,并在方法中使用以下代码片段。
$fileSaver = new Filesaver(); $fileSaver->upload_file($request->form_variable, $modelName, 'database_fieldname', 'base-path');
或
(new Filesaver())->upload_file($request->file_variable, $modelName, 'database_fieldname', 'base-path');
在两种情况下,您应该在类顶部导入类 use Skycoder\LaravelFilesaver\Filesaver;
示例代码
<?php namespace App\Http\Controllers\Setup; use App\Models\User; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Skycoder\LaravelFilesaver\Filesaver; class UserController extends Controller { /* |-------------------------------------------------------------------------- | STORE METHOD |-------------------------------------------------------------------------- */ public function store(Request $request) { $user = User::create([ 'name' => $request->name, 'email' => $request->email ]); (new Filesaver())->upload_file($request->image, $user, 'profile-pic', 'user-profile-pic'); return $user->refresh(); } }
Google Drive 配置
如果您没有,请点击链接获取 Google Drive 凭证。之后,您应该安装一个 Google Drive 包,
composer require nao-pon/flysystem-google-drive
如果需要,请将 App\Providers\GoogleDriveServiceProvider::class,
添加到 config/app.php
文件中的 providers 数组中
然后,将此数组添加到 config/filesystems.php
文件中
'google' => [ 'driver' => 'google', 'clientId' => env('GOOGLE_CLIENT_ID'), 'clientSecret' => env('GOOGLE_CLIENT_SECRET'), 'refreshToken' => env('GOOGLE_REFRESH_TOKEN'), 'folderId' => env('GOOGLE_DRIVE_FOLDER_ID'), ],
最后,将您的 Google Drive 凭证添加到 .env
文件中
FILESYSTEM_CLOUD=google GOOGLE_CLIENT_ID="YOUR_GOOGLE_CLIENT_ID" GOOGLE_CLIENT_SECRET=YOUR_GOOGLE_CLIENT_SECRET" GOOGLE_REFRESH_TOKEN="YOUR_GOOGLE_REFRESH_TOKEN" GOOGLE_DRIVE_FOLDER_ID="YOUR_GOOGLE_DRIVE_FOLDER_ID"
完成设置后,您应在控制器中添加一行代码
(new Filesaver())->uploadFileToGoogleDrive($request->form_file_name, $modelName, 'database_file_name');