Laravel8で画像ファイルをresizeとかするぞー!

まずはライブラリーをインストールするぞー!

composer require intervention/image

Laravelの初期設定するぞー!

Config/app.php
'providers' => [
    Intervention\Image\ImageServiceProvider::class,
],

--- 中略 ---

'aliases' => [
    'Image' => Intervention\Image\Facades\Image::class,
],

コマンド実行

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"

Configのキャッシュクリア

php artisan config:clear

Controller設定

use Intervention\Image\Facades\Image; // Imageファサードを使う
use Illuminate\Support\Facades\Storage; // Storageファサードを使う

実処理

$file = $request->file('image');
$img = Image::make($file)->fit(960, 640);

$fileName = $file->getClientOriginalName();
//拡張子チェック
$extension = strtolower(pathinfo($fileName)['extension']);
$checkExtension = Config('const.image_extension');
if(!in_array($extension, $checkExtension, true)){
    $error = [
        'is_success' => false,
        'errors_message' => ["画像のみアップロード可能です"]
    ];
    return $error;
}
//ファイル保存
$img->save('/image/' . 'image_file' . $extension);

$img->saveのところ、パスとファイルをカンマ(,)で区切るって言ってるサイトが多いけど、パスとファイルは繋げる。

コメント

タイトルとURLをコピーしました