ক্লায়েন্ট-সাইড: FileReader + Canvas রিসাইজ/ক্রপ
সার্ভারে আপলোড করার আগে ব্রাউজারে ইমেজ রিসাইজ, কంప্রেস, ক্রপ করলে ব্যান্ডউইডথ এবং সার্ভার লোড বাঁচায়।
JavaScript (ES6+) — ইমেজ রিসাইজ ও Base64/Blob পাওয়া
<?php
// upload.php
if (isset($_FILES['image'])) {
$tmp = $_FILES['image']['tmp_name'];
$name = basename($_FILES['image']['name']);
$dest = __DIR__ . '/uploads/' . $name;
if (move_uploaded_file($tmp, $dest)) {
echo json_encode(['success' => true, 'path' => $dest]);
} else {
http_response_code(500);
echo json_encode(['error' => 'আপলোড ব্যর্থ']);
}
} else {
http_response_code(400);
echo json_encode(['error' => 'ফাইল পাওয়া যায়নি']);
}
?>
নোট: প্রোডাকশনে ফাইল টাইপ ভ্যালিডেশন (MIME চেক), সাইজ লিমিট, স্যানিটাইজেশন অবশ্যই যোগ করুন।