بارگزاری فایل (File Uploading) در کد ایگنایتر

بارگزاری فایل (File Uploading) در کد ایگنایتر

بارگزاری فایل (File Uploading) در کد ایگنایتر شامل روند کلی زیر است:

  1. یک فرم جهت انتخاب فایل .
  2. مشخص کردن جای ذخیره فایل .
  3. اعتبار سنجی فایل در راه .
  4. آپلود شدن و نشان دادن پیغام موفقیت .

ما طبق یک مثال کاربردی این چهار مورد را به صورت کامل شرح می دهیم .

توجه : بهتر است برای این کار , کار با فرمها را در کد ایگنایتر کار کرده باشید .

فرم نمایش بارگزاری فایل (File Uploading) در کد ایگنایتر

با استفاده از ویرایشگرتان در آدرس application/views/  یک فایل متنی به نام upload_form.php بسازید .

<html>
<head>
<title>Upload Form</title>
</head>
<body>

<?php echo $error;?>

<?php echo form_open_multipart('upload/do_upload');?>

<input type="file" name="userfile" size="20" />

<br /><br />

<input type="submit" value="upload" />

</form>

</body>
</html>

 

 

ساخت صفحه پیغام موفقیت در بارگزاری فایل (File Uploading) در کد ایگنایتر

با استفاده از ویرایشگرتان در آدرس application/views/  یک فایل متنی به نام upload_success.php بسازید .

<html>
<head>
<title>Upload Form</title>
</head>
<body>

<h3>Your file was successfully uploaded!</h3>

<ul>
<?php foreach ($upload_data as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>

<p><?php echo anchor('upload', 'Upload Another File!'); ?></p>

</body>
</html>

 

 

ساخت کنترلر در بارگزاری فایل (File Uploading) در کد ایگنایتر

با استفاده از ویرایشگرتان در آدرس application/controllers/ یک فایل متنی به نام Upload.php بسازید .

<?php

class Upload extends CI_Controller {

        public function __construct()
        {
                parent::__construct();
                $this->load->helper(array('form', 'url'));
        }

        public function index()
        {
                $this->load->view('upload_form', array('error' => ' ' ));
        }

        public function do_upload()
        {
                $config['upload_path']          = './uploads/';
                $config['allowed_types']        = 'gif|jpg|png';
                $config['max_size']             = 100;
                $config['max_width']            = 1024;
                $config['max_height']           = 768;

                $this->load->library('upload', $config);

                if ( ! $this->upload->do_upload('userfile'))
                {
                        $error = array('error' => $this->upload->display_errors());

                        $this->load->view('upload_form', $error);
                }
                else
                {
                        $data = array('upload_data' => $this->upload->data());

                        $this->load->view('upload_success', $data);
                }
        }
}
?>

 

شرح کنترلر

در ابتدای فایل کنترلر کتابخانه های form و url را در سازنده کلاس بارگزاری می نماییم بنا براین در ادامه نیازی برای صدا زدن آنها نمی باشد.

پیشنهاد پیرو برای شما :   آموزش design pattern

در ادامه در تابع index  صفحه upload_form را بارگزاری می نماییم .

در تابع do_upload  اقدامات زیر را انجام می دهیم :

  1. ابتدا با استفاده از آرایه $config  کتابخانه آپلود را مقدار دهی می نماییم .(در ادامه تمامی تنظیمات جهت مقدار دهی کتابخانه را شرح می دهیم)
  2. کتابخانه را با استفاده از تنظیمات مشخص شده صدا می زنیم
  3. در شرطمان (if) فایل را بارگزاری می نماییم ودر صورت موفق بودن کاربر را به صفحه بارگزاری موفق به فایل (upload_success )هدایت می نماییم .و در صورتی که موفقیت آمیز نبود خطا را دریافت و به فایل فرم بارگزاری ارسال می کنیم .

پوشه بارگزاری فایل

شما نیاز دارید به ساخت پوشه uploads در شاخه اصلی برنامه تان و دادن دسترسی کامل به آن جهت بارگزاری فایلها در آن .

 

اجرا

کافی است آدرس زیر را در مرورگرتان فرا خوانی نمایید .

example.com/index.php/upload/

 

 

تنظیمات جهت بارگزاری فایل در کد ایگنایتر

در جدول زیر تنظیماتی که باید به کتابخانه آپلود بفرستیم را نشان می دهیم این تنظیمات در واقع همان تنظیماتی می باشد که در آرایه $config بوده است.

 

نام تنظیم مقدار پیش فرض مقدار ها توضیح
upload_path None None مکان بارگزاری فایل
allowed_types None None پسوندهای مجاز جهت بار گزاری فایل
file_name None Desired file name نام فایل
file_ext_tolower FALSE TRUE/FALSE (boolean) در صورت درست بودن نام فایل به حروف کوچک می شود
overwrite FALSE TRUE/FALSE (boolean) در صورت درست بودن در صورتی که فایل وجود داشته باشد فایل جایگزین می شود
max_size ۰ None حداکثر حجم جهت بار گزاری فایل به صورت پیش فرض از تنظیمات پی اچ پی شما می گیرد که به ۲ مگابایت می باشد
max_width ۰ None حداکثر عرض در صورتی که صفر تنظیم شود اندازه نامحدود می شود
max_height ۰ None حداکثر طول در صورتی که صفر تنظیم شود اندازه نامحدود می شود
min_width ۰ None حداقل عرض در صورتی که صفر تنظیم شود اندازه نامحدود می شود
min_height ۰ None حداقل طول در صورتی که صفر تنظیم شود اندازه نامحدود می شود
max_filename ۰ None حداکثر طول نام فایل در صورتی که صفر تنظیم شود اندازه نامحدود می شود
max_filename_increment ۱۰۰ None هنگامی که overwrite تنظیم شده باشد false در صورتی که تکراری باشد فایل هم ه اندازه این گزینه بزرگتر باشد جایگزین می نماید
encrypt_name FALSE TRUE/FALSE (boolean) در صورتی که درست باشد نام فایل را به صورت کد می کند و این گزینه خیلی موثر و بدرد بخور است
remove_spaces TRUE TRUE/FALSE (boolean) در صورت درست فضاهای خالی در نام فایل به _ تبدیل می شود.
detect_mime TRUE TRUE/FALSE (boolean) در صورت درست بودن سرور چک می کند که فایل خطرناک نباشد
پیشنهاد پیرو برای شما :   کد جاوا اسکریپت (نمایش تصویر بعد از بارگزاری)

 

 

در ادامه …

توجه داشته باشید به هیچ وجه بارگزاری فایل در کد ایگنایتر محدود نمی شود ولی پایه و اساس بارگزاری فایل در کد ایگنایتر را آموزش دادیم ولی در ادامه شما می توانید کتابخانه ای داشته باشید و بارگزاری را باستفاده از آن کتابخانه انجام دهید همچنین شما می توانید بارگزاری را با استفاده از آجاکس انجام دهید .