ভূমিকা
গ্লোবাল প্রিডিফাইনড ভেরিয়েবল $_FILES একটি অ্যাসোসিয়েটিভ অ্যারে যাতে HTTP POST মেথড দিয়ে আপলোড করা আইটেমগুলো থাকে। ফাইল আপলোড করতে HTTP POST মেথড ফর্ম দরকার যার enctype অ্যাট্রিবিউট multipart/form-data সেট করা থাকে।
$HTTP_POST_FILESও একই ইনফো ধারণ করে, কিন্তু এটি সুপারগ্লোবাল নয় এবং এখন ডিপ্রিকেটেড।
_FILES অ্যারেতে নিচের প্রপার্টিগুলো থাকে—
$_FILES['file']['name'] — আপলোড করার ফাইলের মূল নাম।
$_FILES['file']['type'] — ফাইলের MIME টাইপ।
$_FILES['file']['size'] — আপলোড করা ফাইলের সাইজ (বাইটে)।
$_FILES['file']['tmp_name'] — সার্ভারে আপলোড করা ফাইল যেখানে আপসাল থাক았던 সেটির টেম্পোরারি ফাইলনেম।
$_FILES['file']['error'] — এই ফাইল আপলোডের সাথে জড়িত এরর কোড।
নিচের test.html-এ একটি HTML ফর্ম আছে যার enctype সেট করা আছে multiform/form-data। এতে একটি ইনপুট ফাইল এলিমেন্টও আছে যা ফর্মে একটি বাটন দেখায় যেটি ক্লিক করে ইউজার আপলোড করার ফাইল সিলেক্ট করে।
<form action="testscript.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="submit"> </form>
PHP স্ক্রিপ্টটি নিচের মতো—
উদাহরণ
<?php echo "Filename: " . $_FILES['file']['name'] . "<br>"; echo "Type : " . $_FILES['file']['type'] . "<br>"; echo "Size : " . $_FILES['file']['size'] . "<br>"; echo "Temp name: " . $_FILES['file']['tmp_name'] . "<br>"; echo "Error : " . $_FILES['file']['error'] . "<br>"; ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
Filename: hello.html Type : text/html Size : 56 Temp name: C:\xampp\tmp\php32CE.tmp Error : 0