Hướng dẫn upload nhiều hình ảnh trong Laravel

Hướng dẫn chi tiết cách upload nhiều hình ảnh trong Laravel, bao gồm việc thiết lập form upload, xử lý dữ liệu trên server và lưu trữ hình ảnh.

Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo form và xử lý việc upload nhiều hình ảnh trong Laravel một cách đơn giản và hiệu quả. Bạn sẽ được hướng dẫn từng bước từ thiết lập form HTML đến lưu trữ hình ảnh vào thư mục trên server.

Mã PHP Laravel:

Bước 1: Thiết lập form upload hình ảnh

Tạo file upload.blade.php trong thư mục resources/views:

<!-- resources/views/upload.blade.php -->
<!DOCTYPE html>
<html>
<head>
    <title>Upload nhiều hình ảnh trong Laravel</title>
</head>
<body>
    <form action="{{ route('upload.images') }}" method="POST" enctype="multipart/form-data">
        @csrf
        <label for="images">Chọn nhiều hình ảnh:</label>
        <input type="file" name="images[]" multiple>
        <button type="submit">Upload</button>
    </form>
</body>
</html>

Bước 2: Tạo route cho quá trình upload

Trong file web.php:

// routes/web.php
use App\Http\Controllers\ImageUploadController;

Route::get('/upload-images', [ImageUploadController::class, 'showUploadForm']);
Route::post('/upload-images', [ImageUploadController::class, 'uploadImages'])->name('upload.images');

Bước 3: Tạo controller xử lý upload

Chạy lệnh tạo controller:

php artisan make:controller ImageUploadController

Sau đó, thêm code vào ImageUploadController.php:

// app/Http/Controllers/ImageUploadController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ImageUploadController extends Controller
{
    public function showUploadForm()
    {
        return view('upload');
    }

    public function uploadImages(Request $request)
    {
        $request->validate([
            'images' => 'required',
            'images.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
        ]);

        if ($request->hasfile('images')) {
            foreach ($request->file('images') as $image) {
                $name = time().'_'.$image->getClientOriginalName();
                $image->move(public_path('images'), $name);
            }
        }

        return back()->with('success', 'Hình ảnh đã được upload thành công!');
    }
}

Giải thích chi tiết từng dòng code:

  1. name="images[]" multiple: Thiết lập input để cho phép chọn nhiều hình ảnh.
  2. route('upload.images'): Định nghĩa URL xử lý upload.
  3. $request->validate: Xác thực file upload, đảm bảo mỗi file là hình ảnh và kích thước không vượt quá 2MB.
  4. foreach ($request->file('images') as $image): Lặp qua từng file hình ảnh.
  5. $image->move(public_path('images'), $name): Lưu trữ hình ảnh trong thư mục public/images.

Yêu cầu hệ thống:

  • Laravel phiên bản 8 trở lên
  • PHP phiên bản 7.3 trở lên
  • Server có cài đặt composer

Cách cài đặt Laravel:

Sử dụng lệnh sau để cài đặt Laravel:

composer create-project --prefer-dist laravel/laravel upload-images-example

Lời khuyên:

  • Đảm bảo thư mục lưu trữ (public/images) có quyền ghi.
  • Kiểm tra file kích thước và loại trước khi upload để tránh lỗi.
Tags: Laravel, Upload


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Các cách INSERT dữ liệu vào database MySQL trong Laravel

Khám phá các phương pháp khác nhau để insert dữ liệu vào database MySQL trong Laravel, bao gồm sử dụng Eloquent ORM và Query Builder.
Cách sử dụng hàm where trong Laravel

Hướng dẫn chi tiết các cách sử dụng hàm `where` trong Laravel để thực hiện các truy vấn cơ sở dữ liệu hiệu quả và linh hoạt.
Hướng dẫn force HTTPS trong Laravel

Hướng dẫn chi tiết cách thiết lập force HTTPS trong Laravel để đảm bảo rằng tất cả các yêu cầu tới ứng dụng đều được chuyển hướng sang HTTPS, giúp tăng cường bảo mật cho trang web của bạn.
Xác thực bằng JSON Web Token (JWT) trong Laravel

Hướng dẫn từng bước triển khai xác thực API bằng JSON Web Token (JWT) trong Laravel. Bài viết sẽ bao gồm các bước cài đặt và cấu hình để bảo mật ứng dụng web thông qua token-based authentication.
Cách làm chức năng đăng nhập bằng tài khoản Google trong Laravel

Hướng dẫn chi tiết cách tích hợp tính năng đăng nhập bằng tài khoản Google trong Laravel sử dụng thư viện Laravel Socialite. Bài viết sẽ giúp bạn thiết lập ứng dụng Google API và cấu hình trong Laravel.
Các cách DELETE dữ liệu từ database MySQL trong Laravel

Hướng dẫn chi tiết về các phương pháp khác nhau để xóa dữ liệu từ database MySQL trong Laravel, bao gồm Eloquent, Query Builder, và cách thực hiện soft delete.
Cách ghi nội dung vào file Excel trong Laravel

Hướng dẫn chi tiết cách ghi nội dung vào file Excel trong Laravel bằng cách sử dụng thư viện Maatwebsite Excel, giúp bạn dễ dàng xuất dữ liệu từ ứng dụng Laravel của mình ra file Excel.
Tất cả cách UPDATE dữ liệu từ database MySQL trong Laravel

Hướng dẫn chi tiết cách cập nhật dữ liệu trong database MySQL sử dụng Laravel, bao gồm cách sử dụng Eloquent ORM và Query Builder.
Cách chuyển đổi chuỗi Markdown sang HTML bằng Laravel

Hướng dẫn cách chuyển đổi chuỗi Markdown sang HTML trong Laravel bằng cách sử dụng thư viện `league/commonmark`, giúp quá trình chuyển đổi trở nên dễ dàng và hiệu quả.
Tạo mã Captcha trong Laravel

Hướng dẫn chi tiết cách tạo mã Captcha trong Laravel để bảo vệ form khỏi spam và xác thực người dùng. Bài viết sẽ giúp bạn tích hợp Captcha vào dự án Laravel một cách dễ dàng.

Đã thêm vào giỏ hàng