Jinsi ya Kutengeneza Image Upload System
Users kupakia picha (profile, gallery, posts).
Display images kwenye website.
Control uploaded files kwa security, type, na size validation.
Usalama muhimu:
Validate file type (JPEG, PNG, GIF).
Validate file size (avoid huge uploads).
Store files safely (unique names, secure folder).
βοΈ 2. HTML Form ya Image Upload
<h2>Upload Your Image</h2>
<form action="upload_image.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image_file" accept="image/*" required><br><br>
<button type="submit" name="submit">Upload Image</button>
</form>
π‘ Maelezo:
accept="image/*" inasaidia browser ku-filter files.
enctype="multipart/form-data" lazima iwe.
π§© 3. PHP Script ya Image Upload (upload_image.php)
<?php
if(isset($_POST['submit'])){
$target_dir = "uploads/images/";
if(!is_dir($target_dir)){
mkdir($target_dir, 0755, true);
}
$original_name = basename($_FILES['image_file']['name']);
$file_type = strtolower(pathinfo($original_name, PATHINFO_EXTENSION));
$file_size = $_FILES['image_file']['size'];
$allowed_types = ['jpg','jpeg','png','gif'];
$max_size = 2 * 1024 * 1024; // 2MB max
$target_file = $target_dir . time() . "_" . $original_name;
// Validate file type
if(!in_array($file_type, $allowed_types)){
die("β Error: Only JPG, PNG, GIF allowed.");
}
// Validate file size
if($file_size > $max_size){
die("β Error: File too large. Max 2MB allowed.");
}
// Move file
if(move_uploaded_file($_FILES['image_file']['tmp_name'], $target_file)){
echo "β Image uploaded successfully: <a href='$target_file' target='_blank'>View Image</a>";
} else {
echo "β Error uploading image.";
}
}
?>
π‘ Maelezo:
time() . "_" . $original_name inazalisha unique filename.
Validation ni muhimu kabla ya move_uploaded_file.
πΌοΈ 4. Optional: Display Uploaded Images
<?php
$images = glob("uploads/images/*.{jpg,jpeg,png,gif}", GLOB_BRACE);
foreach($images as $img){
echo "<img src='$img' width='150' style='margin:10px;'>";
}
?>
Inaonyesha zote images zilizopakiwa.
π 5. Vidokezo vya Usalama
Validate file type & size β prevent malicious uploads.
Rename files β avoid overwriting & execution.
Store outside web root optionally β extra security.
Set folder permissions β 0755 usually suffices.
Avoid uploading scripts β .php or .js files.
β 6. Hitimisho
Image upload system ni muhimu kwa profiles, galleries, au posts.
Combine na authentication & CSRF tokens kwa security zaidi.
Best practices: validate type & size, unique names, secure folder.
π Tembelea:
π https://www.faulink.com/
Kwa mafunzo zaidi ya PHP, image handling, na secure web application development.