Jinsi ya Kutengeneza Multi-File Upload System
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:
Kwa mafunzo zaidi ya PHP, file handling, na secure multi-file upload systems.
🚀 Unahitaji mfumo au website ya biashara?
Chagua huduma hapa chini kisha mteja bofya moja kwa moja kwenda kwenye ukurasa wa huduma au kuwasiliana nasi kwa WhatsApp.