Multi-file upload system inaruhusu:

Users kupakia multiple files kwa wakati mmoja.

Kuongeza user experience kwenye forms za assignments, gallery uploads, au document submissions.

Handle validations, storage, na security kwa kila file kimoja.

Goal: Secure, efficient, and maintainable multi-file handling system.

βš™οΈ 2. HTML Form kwa Multiple Files
<h2>Upload Multiple Files</h2>
<form action="upload_multiple.php" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple required><br><br>
<button type="submit" name="submit">Upload Files</button>
</form>


πŸ’‘ Maelezo:

multiple attribute inaruhusu selection ya files zaidi ya moja.

name="files[]" ni array ya files tunazosoma kwenye PHP.

🧩 3. PHP Script ya Multi-File Upload (upload_multiple.php)
<?php
if(isset($_POST['submit'])){
$target_dir = "uploads/multiple/";

if(!is_dir($target_dir)){
mkdir($target_dir, 0755, true);
}

$allowed_types = ['jpg','jpeg','png','gif','pdf','doc','docx'];
$max_size = 5 * 1024 * 1024; // 5MB per file

$total_files = count($_FILES['files']['name']);
$uploaded = 0;

for($i = 0; $i < $total_files; $i++){
$file_name = basename($_FILES['files']['name'][$i]);
$file_type = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
$file_size = $_FILES['files']['size'][$i];
$tmp_name = $_FILES['files']['tmp_name'][$i];

// Validate type
if(!in_array($file_type, $allowed_types)){
echo "❌ Skipping $file_name: Invalid file type.<br>";
continue;
}

// Validate size
if($file_size > $max_size){
echo "❌ Skipping $file_name: File too large.<br>";
continue;
}

// Unique filename
$new_file_name = time() . "_" . $file_name;
$target_file = $target_dir . $new_file_name;

// Move file
if(move_uploaded_file($tmp_name, $target_file)){
echo "βœ… $file_name uploaded successfully.<br>";
$uploaded++;
} else {
echo "❌ Error uploading $file_name.<br>";
}
}

echo "<br>βœ… Total files uploaded: $uploaded / $total_files";
}
?>


πŸ’‘ Maelezo:

Kila file inachunguzwa kando (type & size).

Unique filenames zinazuia overwriting.

Output inajulisha user files gani zimeupload na zipi hazikufanikana.

πŸ”‘ 4. Vidokezo vya Usalama

Validate file type & size – avoid malicious uploads.

Use unique filenames – prevent overwriting & predictable paths.

Secure storage folder – .htaccess ili kuzuia script execution.

Limit number of simultaneous uploads – avoid server overload.

Authentication – only logged-in users can upload.

βœ… 5. Hitimisho

Multi-file upload system ni muhimu kwa document submissions, galleries, au media projects.

Combine validation, secure storage, na user feedback kwa robust system.

Best practices: validate type & size, unique filenames, secure folder, limit uploads, authentication.

πŸ”— Tembelea:

πŸ‘‰ https://www.faulink.com/

Kwa mafunzo zaidi ya PHP, file handling, na secure multi-file upload systems.