- دوشنبه 27 مهر 1405 ساعت 04:00
- 3.1.9
- کامل شده
- منقضی شده
FTP Class عملیات انتقال فایل با پروتکل FTP را در اختیار برنامه قرار میدهد. این کلاس برای اتصال به سرور، آپلود و دانلود فایل، تغییر نام، جابهجایی، حذف و فهرست کردن مسیرها استفاده میشود. در صورت امکان برای ارتباط امن از SFTP یا روش انتقال امن مورد پشتیبانی زیرساخت استفاده کنید.
ساختار و API اصلی
ابتدا با connect() تنظیمات میزبان، نام کاربری، گذرواژه و پورت را اعمال کنید. سپس متدهایی مانند upload()، download()، rename()، move()، delete_file()، list_files() و close() را به کار ببرید. مسیر محلی و مسیر مقصد باید دقیق باشند.
نمونه استفاده
$this->load->library('ftp');
$config = array('hostname' => 'ftp.example.org', 'username' => $user, 'password' => $password, 'port' => 21, 'passive' => TRUE);
$this->ftp->connect($config);
$this->ftp->upload('/tmp/report.csv', '/incoming/report.csv', 'binary');
$this->ftp->close();نکته مهم
FTP معمولی اطلاعات ورود و داده را رمزنگاری نمیکند. برای انتقال فایلهای حساس از کانال رمزنگاریشده استفاده کنید و اعتبارسنجی مسیر مقصد را جدی بگیرید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای FTP
| متد یا مفهوم | کاربرد |
|---|---|
connect($config) | اتصال به سرور FTP. |
upload() و download() | انتقال فایل بین دو سرور. |
rename() و move() | تغییر نام یا جابهجایی فایل. |
delete_file() و delete_dir() | حذف فایل یا پوشه. |
list_files() | فهرست فایلهای مسیر. |
mirror() | انتقال بازگشتی ساختار پوشه. |
close() | بستن اتصال. |
نحوه استفاده و عیبیابی
در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.
در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایلهای موقت را پس از پایان عملیات آزاد کنید.
در بازبینی کد، ترتیب و نتیجه متدهای connect($config)، upload() و download()، rename() و move()، delete_file() و delete_dir() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.