skycoder/laravel-filesaver

dev-master / 2.x-dev 2021-12-09 00:00 UTC

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');

更多包