Laravelで画像の加工とアップロード

Table of Contents

Laravelで画像の加工とアップロード

Intervention ImageがVer.3になってから導入手順や、関数が変更になってはまったので、確認したことのメモ書き

ストレージへのシンボリックリンクを作成

php artisan storage:link

デフォルト以外の場所を使用するときは、「filesystems.php」に追記後に「storage:link」コマンドを実行

config\filesystems.php
-----
    'links' => [
        public_path('storage') => storage_path('app/public'),
    ],
-----

画像保存用のフォルダを作成

# mkdir /****/***/<プロジェクト>/public/storage/images
# chown apache:apache images/

画像加工ツールのインストール

composer require intervention/image

サンプルソース

//use宣言
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// 画像のリサイズ(+元画像より大きくしない)
$manager = new ImageManager(new Driver());
$image = $manager -> read(request()->file('image')->getRealPath()) // 画像の読み込み
                  -> orient() //EXIFのOrientationによって回転させる
                  -> scaleDown(width: 1200); // リサイズする+小さい画像は大きくしない

// 保存する
$image->save(storage_path('/app/public/images/'. $name));

// 画像の表示
<img src="{{ asset('storage/images/image.jpg')}}" class="mx-auto" style="height:150px;">

 サーバ公開時も、シンボリック作成などの下記の準備を忘れないこと

# cd /****/***/<プロジェクト>
# php artisan storage:link
# mkdir /****/***/<プロジェクト>/public/storage/images
# chown apache:apache images/

参考URL

【2024年版】LaravelでIntervention Imageを使う方法 #PHP – Qiita
【Laravel11.x】Intervention Image 3を導入して画像をリサイズしてみる【Docker, Amazon Linux 2023】 | かあブログ
Intervention Image | Intervention Image v3 | intervention.io

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です