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