MySQLi দিয়ে File Upload এবং Management

MySQLi বাস্তব উদাহরণ এবং ডেমো - মাইএসকিউএল আই (MySQLi) - Database Tutorials

247

MySQLi ব্যবহার করে ফাইল আপলোড এবং ম্যানেজমেন্ট করার প্রক্রিয়া বেশ সহজ। এখানে একটি সম্পূর্ণ উদাহরণ দেওয়া হলো যেখানে ফাইল আপলোড করা হয় এবং সেগুলি ডেটাবেসে সংরক্ষণ করা হয়।


1. ফাইল আপলোড ফর্ম তৈরি

প্রথমে, একটি HTML ফর্ম তৈরি করতে হবে যা ফাইল আপলোডের জন্য ব্যবহারকারীকে ইন্টারফেস সরবরাহ করবে।

HTML ফর্ম উদাহরণ:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <label for="file">Choose file to upload:</label>
    <input type="file" name="file" id="file" required>
    <button type="submit" name="submit">Upload</button>
</form>

এখানে, enctype="multipart/form-data" নিশ্চিত করে যে ফাইলটি সঠিকভাবে সার্ভারে পাঠানো হবে।


2. PHP স্ক্রিপ্ট লিখুন (upload.php)

এখন ফাইলটি সঠিকভাবে সার্ভারে আপলোড করতে PHP স্ক্রিপ্ট লিখতে হবে। স্ক্রিপ্টটি ফাইলটি আপলোড করবে এবং MySQLi ব্যবহার করে ডেটাবেসে তথ্য সংরক্ষণ করবে।

PHP স্ক্রিপ্ট উদাহরণ:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "file_upload";

// MySQLi কানেকশন তৈরি
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if (isset($_POST['submit'])) {
    // ফাইল ইনপুট এবং গন্তব্য পাথ
    $file = $_FILES['file'];
    $fileName = $_FILES['file']['name'];
    $fileTmpName = $_FILES['file']['tmp_name'];
    $fileSize = $_FILES['file']['size'];
    $fileError = $_FILES['file']['error'];
    $fileType = $_FILES['file']['type'];

    // ফাইল এক্সটেনশন চেক করা
    $fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
    $allowed = array('jpg', 'jpeg', 'png', 'pdf', 'docx');

    if (in_array($fileExt, $allowed)) {
        if ($fileError === 0) {
            if ($fileSize < 5000000) {  // ফাইল সাইজ 5MB এর কম হতে হবে
                // ফাইল নাম পরিবর্তন করা
                $fileNewName = uniqid('', true) . '.' . $fileExt;
                $fileDestination = 'uploads/' . $fileNewName;

                // ফাইল আপলোড করা
                if (move_uploaded_file($fileTmpName, $fileDestination)) {
                    // ডেটাবেসে ফাইলের তথ্য সংরক্ষণ
                    $stmt = $conn->prepare("INSERT INTO files (file_name, file_path, file_size) VALUES (?, ?, ?)");
                    $stmt->bind_param("sss", $fileNewName, $fileDestination, $fileSize);
                    if ($stmt->execute()) {
                        echo "File uploaded and saved to database successfully!";
                    } else {
                        echo "Error saving to database: " . $stmt->error;
                    }
                    $stmt->close();
                } else {
                    echo "There was an error uploading your file.";
                }
            } else {
                echo "Your file is too large.";
            }
        } else {
            echo "There was an error uploading your file.";
        }
    } else {
        echo "Invalid file type. Only JPG, JPEG, PNG, PDF, DOCX files are allowed.";
    }
}

$conn->close();
?>

3. ডেটাবেস সারণী তৈরি করা

এখন, ডেটাবেসে ফাইলের তথ্য সংরক্ষণের জন্য একটি সারণী তৈরি করতে হবে। নিচে একটি SQL কুয়েরি দেওয়া হলো যা ফাইলের নাম, পাথ এবং সাইজ সংরক্ষণ করবে।

CREATE TABLE files (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    file_name VARCHAR(255) NOT NULL,
    file_path VARCHAR(255) NOT NULL,
    file_size INT NOT NULL,
    upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

এটি ফাইল আপলোডের নাম, পাথ, সাইজ এবং আপলোডের তারিখ সংরক্ষণ করবে।


4. ফাইল তালিকা প্রদর্শন করা

আপলোড করা ফাইলগুলির তালিকা দেখানোর জন্য একটি স্ক্রিপ্ট তৈরি করা যেতে পারে। এটি ডেটাবেস থেকে ফাইলের তথ্য নিয়ে তালিকা প্রদর্শন করবে।

ফাইল তালিকা স্ক্রিপ্ট (list_files.php):

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "file_upload";

// MySQLi কানেকশন তৈরি
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM files";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // ফাইলের তালিকা দেখানো
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Name: " . $row["file_name"]. " - Size: " . $row["file_size"] . " bytes <br>";
        echo "<a href='" . $row["file_path"] . "' target='_blank'>Download</a><br><br>";
    }
} else {
    echo "No files found.";
}

$conn->close();
?>

এই স্ক্রিপ্টটি ডেটাবেস থেকে ফাইলের তথ্য নিয়ে ইউজারকে ডাউনলোড লিঙ্কসহ ফাইল তালিকা প্রদর্শন করবে।


5. ফাইল ম্যানেজমেন্ট এবং নিরাপত্তা

ফাইল আপলোডের সময় কিছু নিরাপত্তা ব্যবস্থা নেওয়া গুরুত্বপূর্ণ। নিচে কিছু নিরাপত্তা পদ্ধতি দেওয়া হলো:

  1. ফাইল টাইপ ভ্যালিডেশন: শুধুমাত্র নির্দিষ্ট ফাইল টাইপ (যেমন, JPG, PNG, PDF) আপলোডের অনুমতি দিন।
  2. ফাইল সাইজ সীমাবদ্ধ করা: ফাইলের সাইজ 5MB-এর কম হতে হবে (এটি উপরের কোডে দেওয়া হয়েছে)।
  3. ফাইল নাম পরিবর্তন: ফাইলের নাম এক্সটেনশন সহ পরিবর্তন করুন যাতে ফাইলের আসল নাম সহজে অনুমান করা না যায়।
  4. ফোল্ডার নিরাপত্তা: uploads/ ফোল্ডারে .htaccess ফাইল দিয়ে নিরাপত্তা বাড়ান।

সারাংশ

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


Content added By
Promotion

Are you sure to start over?

Loading...