Multiple File Upload এবং Validation

FuelPHP এর File Upload এবং Management - ফুয়েলপিএইচপি (FuelPHP) - Web Development

255

FuelPHP একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার ব্যবহার করে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে সহায়তা করে। FuelPHP-তে Multiple File Upload এবং File Validation সহজে পরিচালনা করা যায়। এই ফিচারের মাধ্যমে আপনি একাধিক ফাইল আপলোড এবং তাদের ভ্যালিডেশন করতে পারেন, যা ওয়েব অ্যাপ্লিকেশনের জন্য গুরুত্বপূর্ণ।

Multiple File Upload in FuelPHP

FuelPHP ফাইল আপলোডের জন্য একটি সহজ এবং কার্যকরী API প্রদান করে। এটি Upload ক্লাসের মাধ্যমে ফাইল আপলোড করার প্রক্রিয়াকে সহজ করে তোলে।

1. FuelPHP তে Multiple File Upload প্রক্রিয়া

FuelPHP-তে একাধিক ফাইল আপলোড করতে আপনি Upload ক্লাসটি ব্যবহার করবেন। এর মাধ্যমে আপনি একাধিক ফাইল একসাথে আপলোড করতে পারবেন এবং প্রতিটি ফাইলের ভ্যালিডেশনও পরিচালনা করতে পারবেন।

Step 1: Create the Upload Form in View

প্রথমে একটি ফর্ম তৈরি করতে হবে যা ব্যবহারকারীদের ফাইল আপলোড করার অনুমতি দেবে।

// app/views/upload_form.php

<form action="/upload/submit" method="post" enctype="multipart/form-data">
    <input type="file" name="files[]" multiple><br>
    <input type="submit" value="Upload">
</form>

এখানে, multiple অ্যাট্রিবিউট ব্যবহার করে একাধিক ফাইল আপলোড করার অনুমতি দেওয়া হয়েছে।

Step 2: Handle Multiple File Upload in Controller

এবার কন্ট্রোলারে ফাইল আপলোডের লজিক সেটআপ করতে হবে। FuelPHP এর Upload ক্লাস ব্যবহার করে একাধিক ফাইল আপলোড করা যেতে পারে।

// app/controllers/upload.php

class Controller_Upload extends Controller
{
    public function action_index()
    {
        return View::forge('upload_form');
    }

    public function action_submit()
    {
        // Check if files are uploaded
        if (Input::file('files'))
        {
            // Get the files from the input
            $files = Input::file('files');
            $uploaded_files = [];

            // Loop through the files and upload them
            foreach ($files as $file)
            {
                // Validate the file
                if ($file['error'] === UPLOAD_ERR_OK)
                {
                    // Define upload path
                    $upload_path = DOCROOT . 'uploads/';

                    // Check if the file is valid
                    if (Upload::is_valid($file))
                    {
                        // Save the file
                        Upload::save($file, null, $upload_path);
                        $uploaded_files[] = $file['name'];  // Store the uploaded file name
                    }
                    else
                    {
                        // Handle invalid file
                        echo 'Invalid file type or size';
                    }
                }
            }

            // Display uploaded files
            echo 'Files uploaded successfully: <br>';
            echo implode('<br>', $uploaded_files);
        }
        else
        {
            echo 'No files selected for upload.';
        }
    }
}

এখানে:

  • Input::file('files') ব্যবহার করে ফাইলগুলি সংগ্রহ করা হচ্ছে।
  • Upload::is_valid() ফাইলের ভ্যালিডেশন পরীক্ষা করছে।
  • Upload::save() ফাইলটি সেভ করছে।
Step 3: Create an Upload Directory

আপনার ফাইলগুলো সেভ করার জন্য uploads/ নামে একটি ডিরেক্টরি তৈরি করতে হবে:

mkdir -p public/uploads

2. File Validation

ফাইল আপলোডের সময় ফাইলের সাইজ, এক্সটেনশন, এবং MIME টাইপ ভ্যালিডেট করা গুরুত্বপূর্ণ। FuelPHP এর Upload ক্লাসের মাধ্যমে আপনি এই সমস্ত ভ্যালিডেশন করতে পারবেন।

File Validation Example:
// app/controllers/upload.php

public function action_submit()
{
    // Check if files are uploaded
    if (Input::file('files'))
    {
        // Get the files from the input
        $files = Input::file('files');
        $uploaded_files = [];
        
        // Loop through the files and validate/upload them
        foreach ($files as $file)
        {
            // Check for upload errors
            if ($file['error'] === UPLOAD_ERR_OK)
            {
                // Define allowed extensions and MIME types
                $allowed_extensions = ['jpg', 'jpeg', 'png', 'gif'];
                $allowed_mime_types = ['image/jpeg', 'image/png', 'image/gif'];

                // Get file extension and MIME type
                $extension = pathinfo($file['name'], PATHINFO_EXTENSION);
                $mime_type = mime_content_type($file['tmp_name']);

                // Validate the file extension and MIME type
                if (in_array(strtolower($extension), $allowed_extensions) && in_array($mime_type, $allowed_mime_types))
                {
                    // Define upload path
                    $upload_path = DOCROOT . 'uploads/';

                    // Save the file
                    Upload::save($file, null, $upload_path);
                    $uploaded_files[] = $file['name'];
                }
                else
                {
                    echo 'Invalid file type for ' . $file['name'] . '<br>';
                }
            }
        }

        // Display uploaded files
        echo 'Files uploaded successfully: <br>';
        echo implode('<br>', $uploaded_files);
    }
    else
    {
        echo 'No files selected for upload.';
    }
}

এখানে:

  • Allowed file types এবং MIME types যাচাই করা হচ্ছে।
  • pathinfo() এবং mime_content_type() ব্যবহার করে ফাইলের এক্সটেনশন এবং MIME টাইপ যাচাই করা হচ্ছে।

3. Handling Validation Errors

আপনি যদি ফাইলের আকার, এক্সটেনশন বা অন্যান্য কন্ডিশনস সম্পর্কে ভ্যালিডেশন করতে চান, তবে FuelPHP এর Upload::get_errors() মেথডটি ব্যবহার করে আপনি সেগুলি পেতে পারেন।

if (Upload::is_valid($file))
{
    Upload::save($file);
}
else
{
    $errors = Upload::get_errors();
    foreach ($errors as $error)
    {
        echo 'Error: ' . $error . '<br>';
    }
}

এটি ফাইল আপলোডের সময় যে কোনো ত্রুটি সনাক্ত করে এবং ত্রুটির বার্তা প্রদর্শন করবে।

4. File Size Validation

FuelPHP ফাইলের আকার চেক করার জন্য Upload::is_valid() এর সাথে size কন্ডিশন ব্যবহার করতে পারেন।

Upload::set_max_size(5 * 1024 * 1024); // 5 MB

এটি ফাইল আপলোডের সর্বোচ্চ আকার ৫ মেগাবাইটে সীমাবদ্ধ করবে।


FuelPHP-তে Multiple File Upload এবং File Validation খুবই শক্তিশালী এবং সহজ। Upload ক্লাস ব্যবহার করে একাধিক ফাইল আপলোড করা সম্ভব এবং ফাইলের extension, MIME type, size ইত্যাদি ভ্যালিডেশন করা যায়। FuelPHP ফাইল আপলোডের নিরাপত্তা এবং কার্যকারিতা নিশ্চিত করতে শক্তিশালী validation মেকানিজম এবং error handling সিস্টেম প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...