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