File Uploading Class ব্যবহার

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর ফাইল আপলোড এবং ম্যানেজমেন্ট |

CodeIgniter এ File Uploading Class একটি শক্তিশালী টুল, যা ব্যবহারকারীদের ফাইল (যেমন ইমেজ, ডকুমেন্ট, ভিডিও) সার্ভারে আপলোড করার জন্য সহজ এবং সুরক্ষিত উপায় প্রদান করে। এটি ফাইলের সাইজ, টাইপ, এবং অন্যান্য প্যারামিটার যাচাই করার সুবিধা দেয়।


File Uploading Class এর প্রধান বৈশিষ্ট্য

  1. সহজ কনফিগারেশন: বিভিন্ন প্যারামিটার সেটআপ করে ফাইল আপলোড করা যায়।
  2. ভ্যালিডেশন সাপোর্ট: ফাইল টাইপ, সাইজ, এবং অন্যান্য বৈশিষ্ট্য যাচাই করা হয়।
  3. স্বয়ংক্রিয় নামকরণ: আপলোড করা ফাইলের নাম স্বয়ংক্রিয়ভাবে জেনারেট করা যায়।
  4. এরর হ্যান্ডলিং: ফাইল আপলোডে কোনো ত্রুটি হলে স্পষ্ট এরর মেসেজ দেখায়।

File Uploading Class সেটআপ

১. ফাইল আপলোড করার জন্য ফোল্ডার তৈরি

আপনার প্রজেক্ট ডিরেক্টরির মধ্যে একটি ফোল্ডার তৈরি করুন যেখানে ফাইলগুলো আপলোড হবে। উদাহরণস্বরূপ:

project_root/uploads/

২. Controller তৈরি

FileUpload.php নামে একটি Controller তৈরি করুন এবং নিম্নলিখিত কোড যোগ করুন:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class FileUpload extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper(['form', 'url']); // ফর্ম এবং URL হেল্পার লোড
    }

    public function index() {
        $this->load->view('file_upload_form'); // ফর্ম ভিউ লোড
    }

    public function upload() {
        $config['upload_path'] = './uploads/'; // আপলোড ফোল্ডারের পাথ
        $config['allowed_types'] = 'jpg|png|jpeg|gif'; // অনুমোদিত ফাইল টাইপ
        $config['max_size'] = 2048; // ফাইলের সর্বোচ্চ সাইজ (KB)
        $config['file_name'] = time(); // ফাইলের নাম স্বয়ংক্রিয়ভাবে

        $this->load->library('upload', $config); // Upload লাইব্রেরি লোড

        if (!$this->upload->do_upload('userfile')) { // ফাইল আপলোড চেক
            $error = ['error' => $this->upload->display_errors()]; // এরর মেসেজ
            $this->load->view('file_upload_form', $error); // এরর সহ ফর্ম দেখান
        } else {
            $data = ['upload_data' => $this->upload->data()]; // সফল আপলোডের ডেটা
            $this->load->view('file_upload_success', $data); // সফল মেসেজ দেখান
        }
    }
}

View তৈরি

১. ফাইল আপলোড ফর্ম (file_upload_form.php)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>File Upload</title>
</head>
<body>
    <h2>Upload a File</h2>
    <?php if (isset($error)) echo $error; ?> <!-- এরর দেখান -->
    <?php echo form_open_multipart('fileupload/upload'); ?> <!-- ফাইল আপলোড ফর্ম -->
    <input type="file" name="userfile" size="20">
    <br><br>
    <input type="submit" value="Upload">
    </form>
</body>
</html>

২. সফল আপলোডের জন্য View (file_upload_success.php)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Upload Successful</title>
</head>
<body>
    <h2>File Uploaded Successfully!</h2>
    <p>File Name: <?php echo $upload_data['file_name']; ?></p>
    <p>File Size: <?php echo $upload_data['file_size']; ?> KB</p>
    <p>File Type: <?php echo $upload_data['file_type']; ?></p>
</body>
</html>

গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার

প্যারামিটারবর্ণনা
upload_pathফাইল আপলোড করার ফোল্ডারের পাথ।
allowed_typesফাইলের অনুমোদিত টাইপ (যেমন `jpg
max_sizeফাইলের সর্বোচ্চ সাইজ (KB)।
max_widthইমেজের সর্বোচ্চ প্রস্থ (পিক্সেলে)।
max_heightইমেজের সর্বোচ্চ উচ্চতা (পিক্সেলে)।
file_nameফাইলের নতুন নাম সেট করতে।
encrypt_nameফাইলের নাম এনক্রিপ্ট করতে (TRUE/FALSE)।

এরর হ্যান্ডলিং

আপলোডের সময় কোনো সমস্যা হলে এরর মেসেজ পাওয়ার জন্য display_errors() মেথড ব্যবহার করা হয়। উদাহরণ:

$error = $this->upload->display_errors();

উদাহরণ: কাস্টম ভ্যালিডেশন সহ ফাইল আপলোড

if (!$this->upload->do_upload('userfile')) {
    $error = ['error' => $this->upload->display_errors()];
    $this->load->view('file_upload_form', $error);
} else {
    $upload_data = $this->upload->data();
    if ($upload_data['image_width'] > 1024 || $upload_data['image_height'] > 768) {
        unlink($upload_data['full_path']); // অপ্রয়োজনীয় ফাইল ডিলিট করুন
        $error = "Image dimensions exceed 1024x768.";
        $this->load->view('file_upload_form', ['error' => $error]);
    } else {
        $this->load->view('file_upload_success', ['upload_data' => $upload_data]);
    }
}

File Uploading Class এর সুবিধা

  1. সহজ কনফিগারেশন: ফাইল আপলোডের জন্য বিভিন্ন প্যারামিটার সহজে সেট করা যায়।
  2. সুরক্ষিত আপলোড: ফাইল টাইপ এবং সাইজ যাচাই করে।
  3. স্বয়ংক্রিয় নামকরণ: একই নামে ফাইল আপলোড হলে কনফ্লিক্ট এড়ানো যায়।
  4. ডিবাগিং সুবিধা: এরর মেসেজ দেখে সমস্যার কারণ চিহ্নিত করা সহজ।

CodeIgniter এর File Uploading Class দ্রুত এবং নিরাপদে ফাইল আপলোড করার একটি আদর্শ সমাধান।

Content added By
Promotion