Upload Image khi deloy project laravel

Bài viết này chỉ mang tính chất chia sẻ.
Đối với việc deloy 1 dự án laravel, việc upload image ảnh khá là cần thiết. Laravel hỗ trợ việc lưu ảnh trên local nhưng khi deloy ảnh sẽ fail.
Vì vậy khi vào thực tế image sẽ được lưu trên 1 serve khác.
Có rất nhiều cách để thực hiện nhưng với mình thấy đơn giản là lưu trên cloudinary.
Sau đây là cách mình thực hiện:
Đầu tiên bạn phải tạo 1 tài khoản trên https://cloudinary.com
Sau đó chúng ta cài thư viện vào laravel “composer require cloudinary-labs/cloudinary-laravel”.
Sau khi chạy xong chúng ta vào file config/app.php
‘providers’ => [
CloudinaryLabs\CloudinaryLaravel\CloudinaryServiceProvider::class,
]
‘aliases’ => [
‘Cloudinary’=>CloudinaryLabs\CloudinaryLaravel\Facades\Cloudinary::class,
]
Và chạy lệnh php artisan vendor:publish –provider=”CloudinaryLabs\CloudinaryLaravel\CloudinaryServiceProvider” –tag=”cloudinary-laravel-config”
Sau khi chạy thành công sẽ tạo 1 file cloudinary.php trong config.
Và cuối cùng là cấu hình trong file .env
Ở đây ta quay lại dashboard trong https://cloudinary.com mà bạn vừa tạo tài khoản để lấy API Environment variable
Bạn copy và điền vào file .env như sau:
CLOUDINARY_URL=cloudinary://*********************
Xong chúng ta đã cấu hình xong. Và để lưu ảnh chúng ta thực hiên rất đơn giản.
Mình ví dụ 1 đoạn code cho việc update avatar:
public function update_profile(Request $request, $id)
{
$user = User::find($id);
$user->name = $request->name;
if ($request->hasFile(‘avatar’)) {
//upload image
$result = $request->file(‘avatar’)->storeOnCloudinary();
//get url image luu vao db
$user->image = $result->getPath();
}
Session::put(‘message’,’Cập nhật thành công!’);
$user->save();
return redirect()->route(‘showProfile’, $id);
}
Và kết quả trong db ta lưu địa chỉ link ảnh. Và khi deloy image sẽ ko bị fail
Mình đã thử deloy lên heroku và thành công. Ak deloy thì chúng ta cũng config thêm CLOUDINARY_URL=cloudinary://********************* vào heroku nhé.
P/s: Bài viết hơi lủng củng. Mọi người đi qua ném đá nhẹ tay. @@

Link tham khảo: https://github.com/cloudinary-labs/cloudinary-laravel

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook