【Laravel 5.1】InterventionライブラリのImageファサード (画像アップロード)

Composerでインストール

$ composer require intervention/image




インストールされるディレクトリは2つ。

[1]
/vendor/guzzlehttp
* UploadFileクラスなど。

[2]
/vendor/intervention
* Imageクラス
    (saveメソッド)
* ImageManagerクラス
    (makeメソッド)
* sizeクラス
    (resizeメソッド)

Laravel 5.4 以下なので、手動でconfig/app.php
パッケージを登録する。

'aliases' => [
    // 省略
    'Image' => Intervention\Image\Facades\Image::class
]

「\Image::****」の形で、 Imageファサードを使用できるようになる。




コントローラ側でInterventionライブラリの
Imageファサードを呼び出す。

bladeテンプレートのformタグ内に、
input type="file" name="upload_image"があると仮定して、

       if ($request['upload_image']) {
           // Requestクラスのfileメソッドで、
           // name="upload_image"としてフォームPOST送信したものを受け取る。
           $file = $request->file('upload_image');
           // 元のファイル名を取得
           $name = $file->getClientOriginalName();
           // storage_pathメソッドにより、
           // 「/storage/ディレクトリ」以下に指定できる。
           $save_path = storage_path('app/');

           // [メソッドチェイン記法]
           // ファイルを展開し、指定のディレクトリに保存処理を実行。
           $image = \Image::make($file)->save($save_path.$name);

           // [ライブラリ公式]  
           // http://image.intervention.io/getting_started/introduction

       }