পিএইচপি ফাইল আপলোড - PHP File Upload

এই অধ্যায়ে আপনি পিএইচপি ব্যবহার করে সার্ভারে ফাইল আপলোড করা শিখবেন। পিএইচপির সাহায্যে সার্ভারে ফাইল আপলোড করা খুবই সহজ।

যাইহোক, এই সহজ বিষয়টিও আপনার জন্য বিপদ ডেকে আনতে পারে! তাই ফাইল আপলোড এর অনুমতি দেয়ার ক্ষেত্রে সতর্ক থাকুন।


"php.ini" ফাইল কনফিগার

প্রথমতঃ এটি নিশ্চিত করুন যে, ফাইল আপলোড করার জন্য "php.ini" ফাইল কনফিগার করা হয়েছে।

ফাইল আপলোড কনফিগার করার জন্য আপনার "php.ini" ফাইলে file_filelocation লিখে সার্চ করে এটিতে On সেট করুনঃ

file_filelocation = On

ফাইল আপলোডের জন্য এইচটিএমএল ফরম তৈরি

দ্বিতীয়তঃ একটি এইচটিএমএল ফরম তৈরি করুন যার মাধ্যমে একজন ইউজার তার পছন্দ মতো ইমেজ আপলোড করতে পারবে।

kt_satt_skill_example_id=259

উপরের এইচটিএমএল ফরমের জন্য কিছু করনীয় বিষয়ঃ

  • ফরম সাবমিট এর সময় method="post" এর ব্যবহার নিশ্চিত করুন।
  • এছাড়া ফরমের মধ্যে enctype="multipart/form-data" এট্রিবিউটটি ব্যবহার করতে হবে। এই এট্রিবিউট এর মাধ্যমে ফরম সাবমিট এর সময় কন্টেন্ট এর টাইপ নির্ধারণ করা হয়।

উপরোক্ত শর্তসমুহ না মানলে ফাইল আপলোড কাজ করবে না।

ইনপুট এলিমেন্টে type="file" এট্রিবিউটটি ব্যবহারের মাধ্যমে ব্রাউজারে একটি বাটন তৈরি হবে যার মাধ্যমে ফাইল সিলেক্ট করা যাবে।

উপরের ফরমটি প্রসেস করার জন্য method="post" এর সাহায্যে "uploadfile.php" ফাইলের কাছে পাঠানো হয়।

আপনার বুঝার সুবিধার্থে নিম্নে "uploadfile.php" ফাইলের কোডসমূহ ধাপে ধাপে দেখানো হয়েছে এবং পরিশেষে সম্পূর্ণ কোড একসাথে লেখা হয়েছে।


ফাইল আপলোডের পিএইচপি স্ক্রিপ্ট

ফাইল আপলোড করার কোডগুলো "uploadfile.php" ফাইলে থাকেঃ

kt_satt_skill_example_id=260

পিএইচপি স্ক্রিপ্টের ব্যাখ্যাঃ

  • $target_directory = "filelocation/" - ফাইলটি যে ডিরেক্টরিতে গিয়ে জমা হবে সেটি নির্ধারণ করে।
  • $target_file - যে ফাইলটি আপলোড হবে সেটির path নির্দিষ্ট করে।
  • $fileuploadDone = 1 - ফাইল আপলোড এর স্ট্যাটাস নির্দেশ করে।
  • $fileExtension - ফাইলের এক্সটেনশন ধারন করে।
  • ইমেজ ফাইলটি আসল ইমেজ নাকি ফেক ইমেজ পরবর্তীতে চেক করা হবে।

নোটঃ যে ডিরেক্টরিতে "uploadfile.php" ফাইলটি রয়েছে, আপনাকে সেখানে "filelocation" নামে নতুন একটি ডিরেক্টরি তৈরি করতে হবে। আপলোডকৃত ফাইলগুলো এই ডিরেক্টরিতে সংরক্ষণ হবে।


ফাইল পূর্ব থেকেই আছে কিনা চেক করা

এখন আমরা অনেকগুলো সীমাবদ্ধতা যুক্ত করতে পারি।

প্রথমতঃ আমরা যে ফাইলটি আপলোড করবো সেই ফাইলটি "filelocation" ফোল্ডারের মধ্যে আছে কিনা চেক করে নিব। যদি পূর্ব থেকেই ফাইল আপলোড করা থাকে তাহলে একটি error মেসেজ প্রদর্শিত হবে এবং $fileuploadDone এ 0 সেট হবেঃ

kt_satt_skill_example_id=262


ফাইলের সাইজ লিমিটেশন

আমাদের এইচটিএমএল ফরমের ফাইল ইনপুট ফিল্ডের নাম দেওয়া হয়েছে "fileUpload"।

এখন আমরা ফাইলের সাইজ চেক করবো। ফাইলটি যদি 300kb এর চেয়ে বড় হয় তাহলে একটি error মেসেজ প্রদর্শিত হবে এবং $fileuploadDone এ 0 সেট হবেঃ

kt_satt_skill_example_id=263

ফাইলের টাইপ লিমিটেশন

নিচের কোডগুলো একজন ইউজারকে শুধুমাত্র JPG, JPEG, PNG এবং GIF ফাইল আপলোড করার অনুমতি দিবে। এগুলো ব্যতীত অন্য টাইপের ফাইল আপলোড করলে $fileuploadDone এ 0 সেট হওয়ার পূর্বেই একটি error মেসেজ প্রদর্শিত হবেঃ

kt_satt_skill_example_id=264


সম্পূর্ণ পিএইচপি ফাইল আপলোড স্ক্রিপ্ট

নিম্নে সম্পূর্ণ "uploadfile.php" ফাইল এর কোড দেওয়া হলোঃ

kt_satt_skill_example_id=265

 

Promotion