CodeIgniter এ File Uploading Class একটি শক্তিশালী টুল, যা ব্যবহারকারীদের ফাইল (যেমন ইমেজ, ডকুমেন্ট, ভিডিও) সার্ভারে আপলোড করার জন্য সহজ এবং সুরক্ষিত উপায় প্রদান করে। এটি ফাইলের সাইজ, টাইপ, এবং অন্যান্য প্যারামিটার যাচাই করার সুবিধা দেয়।
আপনার প্রজেক্ট ডিরেক্টরির মধ্যে একটি ফোল্ডার তৈরি করুন যেখানে ফাইলগুলো আপলোড হবে। উদাহরণস্বরূপ:
project_root/uploads/
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); // সফল মেসেজ দেখান
}
}
}
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>
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]);
}
}
CodeIgniter এর File Uploading Class দ্রুত এবং নিরাপদে ফাইল আপলোড করার একটি আদর্শ সমাধান।
Read more