前言
本篇為實際上使用Laravel,以及套件Intervention來儲存及重新修改圖片尺寸的學習筆記。
安裝套件Intervention
安裝流程請參照 Intervention GitHub官網
composer require intervention/image |
- 打開
config/app.php
, 在array$providers
裏頭加上Intervention\Image\ImageServiceProvider::class
在array
aliases
裏頭加上'Image' => Intervention\Image\Facades\Image::class
建立上傳資料夾與storage資料夾的連結
依照官網說明建立連結
- 在terminal輸入
php artisan storage:link
- 在terminal輸入
連結之後,
project/storage/app/public
會跟project/public/storage
這兩個資料夾就回相連。- 如果你是要儲存檔案,請儲存到
project/storage/app/public/(anySubdirectoryYouWant)
- 如果你是要提供外部存取的URL,請使用
project/public/storage/(anySubdirectoryYouWant)/fileName
,因為對外部來說,預設可存取資料夾為public
,所以直接使用asset('storage/(anySubdirectoryYouWant/fileName)')
- 如果你是要儲存檔案,請儲存到
驗證圖片是否有被帶進來
// 因為我們不需要太多的東西,只需要request array裡頭的東西 |
重新縮放圖片大小
- 要縮放大小,所以會需要使用到套件intervention
- 在namespace下加上
use Intervention\Image\ImageManagerStatic as Image;
- 在namespace下加上
// 拿到剛剛存進DB的item實例 |
刪除圖片(如果使用者要求)
if ($request->imageDelete == true) |
產出可存取資源的URL
// 當產出公開存取的URL,它必須要是外部存取位址 |
留言