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

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

হোম-HOME ইনস্টল-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 স্ট্যাটিক মেথোড এবং প্রোপার্টি

পিএইচপি - রেফারেন্স

Array ফাংশন Calendar ফাংশন date/time ফাংশন Directory ফাংশন Error ফাংশন Filesystem ফাংশন Filter ফাংশন FTP ফাংশন HTTP ফাংশন libxml ফাংশন Mail ফাংশন Math ফাংশন Misc. ফাংশন MySQLi ফাংশন SimpleXML ফাংশন String ফাংশন XML Parser ফাংশন Zip File ফাংশন টাইমজোন Timezones
 

পিএইচপি(৫) - ফাইল আপলোড


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

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


"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>

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

উপরের কাজগুলো ব্যতীত, ফাইল আপলোড কাজ করবে না।

অন্যান্য যে বিষয়গুলো লক্ষ্য রাখবেনঃ

উপরের ফরমটি "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;
    }
}
?>

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

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


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

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

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

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

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

উপরে আমাদের এইচটিএমএল ফরমের ফাইল ইনপুট ফিল্ডের নাম হলো "fileUpload"।

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

 // ফাইল সাইজ চেক
if ($_FILES["fileUpload"]["size"] > 500000) {
    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 "দুঃখিত, আপনার ফাইলটি আপলোডে সমস্যা হচ্ছে।";
    }
}
?>