Skip to content
Thuan Bui's Blog
Go back

File Upload trong Laravel - [Phần 2] Kiểm tra và bảo vệ file upload form

Trong bài viết [Phần 1], mình đã chia sẻ cách tạo form và xử lý file upload cơ bản trong Laravel. Tuy nhiên, trong thực tế, chúng ta không thể để người dùng upload bất kỳ file gì một cách tự do. Việc kiểm tra (validation) và bảo vệ upload là bắt buộc, nhằm đảm bảo tính ổn định và an toàn cho ứng dụng.

Trong bài viết [Phần 2] của loạt bài viết File Upload trong Laravel lần này sẽ bao gồm các nội dung sau:

I. Kiểm tra file upload với Laravel Validation

Bổ sung thêm phần validation vào phần trên cùng trong function store của UploadController nhằm kiểm tra tính xác thực của các file được upload.

Terminal window
$request->validate([
'file' => 'required|image|mimes:jpg,jpeg|dimensions:max_width=600,min_height=100,max:2048',
]);

II. Hiển thị lỗi khi validate không thành công

Trong blade template upload.blade.php, bổ sung thêm phần hiển thị lỗi validation

@if ($errors->any())
<div class="container mx-auto mt-10 p-6 bg-red-100 border border-red-400 text-red-700 rounded-lg shadow-md max-w-md">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

Laravel sẽ tự động redirect về trang cũ nếu validation không thành công, kèm theo hiển thị lỗi.

III. Bảo vệ ứng dụng khỏi rủi ro khi upload

Một số nguy cơ thường gặp khi cho phép người dùng upload file

Do đó bắt buộc phải luôn áp dụng Validation mỗi khi sử dụng file upload form, và thiết lập rõ các điều kiện cần thiết:

IV. Lời kết

Trong [Phần 2] này, mình đã chia sẻ:

🔗 Mã nguồn

Mã nguồn mình sử dụng trong [Phần 2] này có thể tham khảo ở đây: https://github.com/10h30/laravel-file-upload-series/tree/part-2-validation-security

🔜 Phần 3: Upload nhiều file

Hiện tại form upload chỉ cho phép chọn một file một lần. Nhưng trong thực tế, người dùng thường muốn upload nhiều file cùng lúc, ví dụ như upload nhiều hình ảnh, tài liệu, hay video.

Trong Phần 3, chúng ta sẽ nâng cấp hệ thống để hỗ trợ upload nhiều file một lúc, đồng thời xử lý chúng một cách an toàn và hiệu quả.

https://thuanbui.me/file-upload-laravel-phan-3/


Share this post on:

Previous Post
File Upload trong Laravel - [Phần 3] Upload cùng lúc nhiều file
Next Post
Khắc phục lỗi "can’t mount /efi" khiến EndeavourOS không thể khởi động