بارگزاری فایل (File Uploading) در کد ایگنایتر
بارگزاری فایل (File Uploading) در کد ایگنایتر شامل روند کلی زیر است:
- یک فرم جهت انتخاب فایل .
- مشخص کردن جای ذخیره فایل .
- اعتبار سنجی فایل در راه .
- آپلود شدن و نشان دادن پیغام موفقیت .
ما طبق یک مثال کاربردی این چهار مورد را به صورت کامل شرح می دهیم .
توجه : بهتر است برای این کار , کار با فرمها را در کد ایگنایتر کار کرده باشید .
فرم نمایش بارگزاری فایل (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 را در سازنده کلاس بارگزاری می نماییم بنا براین در ادامه نیازی برای صدا زدن آنها نمی باشد.
در ادامه در تابع index صفحه upload_form را بارگزاری می نماییم .
در تابع do_upload اقدامات زیر را انجام می دهیم :
- ابتدا با استفاده از آرایه $config کتابخانه آپلود را مقدار دهی می نماییم .(در ادامه تمامی تنظیمات جهت مقدار دهی کتابخانه را شرح می دهیم)
- کتابخانه را با استفاده از تنظیمات مشخص شده صدا می زنیم
- در شرطمان (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) | در صورت درست بودن سرور چک می کند که فایل خطرناک نباشد |
در ادامه …
توجه داشته باشید به هیچ وجه بارگزاری فایل در کد ایگنایتر محدود نمی شود ولی پایه و اساس بارگزاری فایل در کد ایگنایتر را آموزش دادیم ولی در ادامه شما می توانید کتابخانه ای داشته باشید و بارگزاری را باستفاده از آن کتابخانه انجام دهید همچنین شما می توانید بارگزاری را با استفاده از آجاکس انجام دهید .