পিএইচপি ফাইল বা ইমেজ আপলোড

সার্ভারে ফরম থেকে কোন ফাইল বা ইমেজ আপলোড করা যায় কিভাবে তা দেখব। প্রথমে একটা এইচটিএমএল ফরম তৈরি করে নিবঃ

<html>
   <body>
      
      <form action="upload.php" method="POST" enctype="multipart/form-data">
         <input type="file" name="image" />
         <input type="submit"/>
      </form>
      
   </body>
</html>

কোন ফাইল আপলোড করতে হলে আমাদের ফরম ট্যাগে multipart অপশনটা যুক্ত করতে হয়।
সার্ভার সাইড কোডঃ

<?php
   if(isset($_FILES['image'])){

     $file_name = $_FILES['image']['name'];   
     $file_tmp =$_FILES['image']['tmp_name'];
    
	move_uploaded_file($file_tmp,"images/".$file_name);
	echo "Uploaded!";     
   }
?>

ফাইল সার্ভারে সেভ করার জন্য দুইটা অংশ দরকার। একতা হচ্ছে ফাইলটির নাম। আরেকটা হচ্ছে টেম্পরারি লোকেশন প্রতিটা ফাইল আপলোড করার পর তা প্রথমে সার্ভারের টেম্পোরারি ফোল্ডারে আপলোড হয়। এরপর টেম্পোরারি ফোল্ডার থেকে আমরা যে কোন জাগায় ফাইলটি মুভ করতে পারি। ফাইল মুভ করার জন্য টেম্পোরারি লোকেশন দিতে হয়, আর কোথায় মুভ করতে হবে, সে তথ্য দিতে হয়।

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

<?php
   if(isset($_FILES['image'])){

     $file_name = $_FILES['image']['name'];   
     $file_tmp =$_FILES['image']['tmp_name'];
	 
	 if (!file_exists('images')) {
		mkdir('images', 0777, true);
		
		move_uploaded_file($file_tmp,"images/".$file_name);
		echo "Uploaded!"; 
	}  
	    
 }
?>

আমরা যদি একই নামে নতুন ফাইল আপলোড করি, তাহলে আগের ফাইলটি রিপ্লেস হয়ে যাবে। এ সমস্যা সমাধান করতে হলে আমরা প্রতিটা ফাইলের জন্য একটা ইউনিক নাম দিতে পারি। এই অংশটা আপনি নিজে ইমপ্লিমেন্ট করার চেষ্টা করতে পারেন। আমি হিন্টস দিচ্ছি, রেন্ডমলি একটা স্টিং জেনারেট করে ফাইলের নামের সাথে জুড়ে দিলে ইউনিক হয়ে যাবে।

One thought on “পিএইচপি ফাইল বা ইমেজ আপলোড

  1. আমি একজন ভারতীয় ।।।।
    তা ও আমি বাংলি।।।
    আপনার কি বই ভরতে পাওয়াবে ।।।।
    অবশেষে বলি য়ে ,আপনি য়ে গুলি লিখেছেন তা খুব ভালো , আমি তো এখান থেকে অনেক কিছু শিখলাম ।।।।
    আর আমি এ গুলো আরো ভালো করে পড়বো ।।।।
    Thanks u sir…..

Leave a Reply