পিএইচপি এসকিউএল ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল
ফোরাম
×

পিএইচপি টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

কন্ট্রোল স্টেটমেন্ট

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

পিএইচপি এ্যারে এবং স্ট্রিং

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

পিএইচপি এডভান্স

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

পিএইচপি ফরম

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

MySQL ডেটাবেজ

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট

পিএইচপি- এক্সএমএল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom

পিএইচপি - এজাক্স

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP)

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি ফাইল আপলোড


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

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


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

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

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

file_filelocation = On

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

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

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<form action="uploadfile.php" method="post" enctype="multipart/form-data">
    আপলোড করার জন্য ছবি সিলেক্ট করুনঃ
    <input type="file" name="fileUpload" id="fileUpload">
    <input type="submit" value="ছবি আপলোড" name="submit">
</form>

</body>
</html>

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

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

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

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

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

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


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

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

<?php
$target_directory = "filelocation/";
$target_file = $target_directory . basename($_FILES["fileUpload"]["name"]);
$fileuploadDone = 1;
$fileExtension = pathinfo($target_file,PATHINFO_EXTENSION);
// ইমেজ ফাইলটি আসল না ফেক  চেক করে
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileUpload"]["tmp_name"]);
   if($check !== false) {
        echo	"ফাইলটি ইমেজ - " . $check["mime"] . ".";
        $fileuploadDone = 1;
    } else {
       	echo "ফাইলটি ইমেজ নয়।";
       	$fileuploadDone = 0;
    }
}
?>

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

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

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


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

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

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

// ফাইলটি পূর্ব থেকে আছে কিনা  চেক
if (file_exists($target_file)) {
    echo "দুঃখিত, ফাইলটি পূর্ব থেকেই আপলোড রয়েছে।";
    $fileuploadDone = 0;
}

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

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

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

 // ফাইল এর সাইজ চেক
if ($_FILES["fileUpload"]["size"] > 300000) {
    echo "দুঃখিত, আপনার ফাইলটি অনেক বড় আকারের।";
    $fileuploadDone = 0;
} 

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

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

// কয়েকটি নির্দিষ্ট টাইপের ফাইল আপলোডের অনুমতি
if($fileExtension != "jpg" && $fileExtension!= "png" && $fileExtension != "jpeg" && $fileExtension != "gif" ) {
    echo "দুঃখিত, শুধুমাত্র JPG, JPEG, PNG এবং GIF ফাইল আপলোড করা যাবে।";
    $fileuploadDone = 0;
}

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

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

<?php
$target_directory = "filelocation/";
$target_file = $target_directory . basename($_FILES["fileUpload"]["name"]);
$fileuploadDone = 1;
$fileExtension = pathinfo($target_file,PATHINFO_EXTENSION);
// ফাইলটি ছবি কিনা তা চেক করে
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileUpload"]["tmp_name"]);
    if($check !== false) {
        echo	"ফাইলটি ইমেজ - " . $check["mime"] . ".";
        $fileuploadDone = 1;
    } else {
        echo "ফাইলটি ইমেজ নয়।";
        $fileuploadDone = 0;
    }
}
// ফাইলটি ইতিমধ্যে বিদ্যমান কিনা তা চেক করে
if (file_exists($target_file)) {
    echo "দুঃখিত, ফাইলটি পূর্ব থেকেই আপলোড রয়েছে।";
    $fileuploadDone = 0;
}
// ফাইলের সাইজ চেক
if ($_FILES["fileUpload"]["size"] > 500000) {
    echo "দুঃখিত, আপনার ফাইলটি অনেক বড় আকারের।";
    $fileuploadDone = 0;
}
// কয়েকটি নির্দিষ্ট টাইপের ফাইল আপলোডের অনুমতি
if($fileExtension != "jpg" && $fileExtension != "png" && $fileExtension != "jpeg"
&& $fileExtension != "gif" ) {
    echo "দুঃখিত, শুধুমাত্র JPG, JPEG, PNG এবং GIF ফাইল আপলোড করা যাবে।";
    $fileuploadDone = 0;
}
// $fileuploadDone কি error এর কারনে 0 তে সেট হয়েছে কিনা তা চেক
if ($fileuploadDone == 0) {
    echo "দুঃখিত, আপনার ফাইলটি আপলোড হয়নি।";
// যদি সবকিছু ঠিক থাকে, তাহলে ফাইল আপলোড করা।
} else {
    if (move_uploaded_file($_FILES["fileUpload"]["tmp_name"], $target_file)) {
        echo " ". basename( $_FILES["fileUpload"]["name"]). " ফাইলটি আপলোড হয়েছে। ";
    } else {
        echo "দুঃখিত, আপনার ফাইলটি আপলোডে সমস্যা হচ্ছে।";
    }
}
?>