Jinsi ya Kutengeneza Multi-File Upload System
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.