یک اسکریپت PHP بنویسید که به یک سرور FTP متصل شود، دانلود یک فایل را با ftp_nb_get به صورت غیرمسدود آغاز کند و با استفاده از ftp_nb_get_option مقدار بایت‌های منتقل‌شده را در یک حلقه نمایش دهد تا کاربر پیشرفت دانلود را ببیند و در پایان فایل را ذخیره کند.

5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:17

0.0

از افزونه FTP در PHP استفاده کنید: با ftp_connect و ftp_login به سرور وصل شوید و در صورت نیاز ftp_pasv را فعال کنید. با ftp_nb_get دانلود غیربلوکینگ را شروع کنید، در حلقه‌ای که وضعیت ftp_nb_get را بررسی می‌کند (FTP_MOREDATA/FTP_FINISHED/FTP_FAILED) هر بار با ftp_nb_get_option مقدار بایت‌های منتقل‌شده را بخوانید و با استفاده از ftp_size اندازه کل فایل را محاسبه کرده و درصد پیشرفت را نمایش دهید؛ برای ادامه انتقال از ftp_nb_continue استفاده کنید تا وقتی وضعیت به FTP_FINISHED رسید فایل کامل ذخیره و اتصال با ftp_close بسته شود. نکات: خطاها را کنترل کنید، تاخیر کوتاهی در حلقه قرار دهید (usleep/sleep) و با دسترسی‌های فایل محلی و مسیرهای صحیح کار کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:17
دسته بندی ها: PHP PHP for beginner
arash در 201 روز قبل ساعت 06:54

برای پیاده‌سازی دانلود غیرمسدود FTP در PHP، مطمئن شوید گزینه‌های passive mode و مدیریت خطاها به درستی کار می‌کنند. در حلقه با ftp_nb_get_option و ftp_nb_continue، مقدار بایت‌های منتقل‌شده را به روز رسانی کنید و از usleep کوتاه برای کاهش مصرف CPU استفاده کنید. پیش از شروع دانلود، اندازه کل فایل را با ftp_size بررسی کنید و عملیات را در حالت باینری (FTP_BINARY) انجام دهید تا از خرابی داده‌ها جلوگیری شود. در نهایت مسیر محلی و دسترسی‌های فایل خروجی را کنترل کنید و پس از اتمام با ftp_close اتصال را ببندید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری