Dưới đây là các bước để tải lên nhiều file và lưu chúng vào thư mục:
- Tên input phải được định nghĩa là mảng, ví dụ: name="inputName[]"
- Phần tử input phải có multiple="multiple" hoặc chỉ multiple
- Trong file PHP, sử dụng cú pháp "$_FILES['inputName']['param'][index]"
- Tên file và đường dẫn rỗng phải được kiểm tra vì mảng có thể chứa chuỗi rỗng. Để giải quyết, sử dụng array_filter() trước count.
Dưới đây là mã minh họa:
HTML
<input name="upload[]" type="file" multiple="multiple" />
PHP
$files = array_filter($_FILES['upload']['name']); // Sử dụng tương tự trước khi xử lý file
// Đếm số file tải lên trong mảng
$total_count = count($_FILES['upload']['name']);
// Lặp qua từng file
for( $i=0 ; $i < $total_count ; $i++ ) {
// Đường dẫn file tạm được lấy
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
// Đường dẫn file cần có mặt
if ($tmpFilePath != ""){
// Thiết lập đường dẫn file mới
$newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];
// File được tải lên thư mục tạm
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
// Mã khác đặt ở đây
}
}
}
Các file được liệt kê và số lượng file cần tải lên được lưu trong biến 'total_count'. Một đường dẫn file tạm được tạo và mỗi file lần lượt được đặt vào đường dẫn tạm này chứa một thư mục.