Image upload system inaruhusu:

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.