با استفاده از تابع ftp_nb_get یک فایل بزرگ را بهصورت غیرمسدود (non-blocking) از سرور FTP دانلود کرده و وضعیت پیشرفت دانلود را به کاربر نمایش دهید.
12.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:56 0.0
برای حل مسأله از توابع PHP مانند ftp_connect و ftp_login برای اتصال و ورود به سرور استفاده کنید، سپس با ftp_size اندازه فایل راه دور را بگیرید و با فراخوانی اولیه ftp_nb_get دانلود را شروع کنید؛ در حلقهای که تا بازگشت FTP_FINISHED ادامه دارد از ftp_nb_continue برای ادامه دانلود استفاده کنید و بعد از هر تکرار با بررسی filesize فایل محلی و مقایسه با اندازه راه دور درصد پیشرفت را محاسبه کنید. توجه داشته باشید که افزونه FTP در PHP فعال باشد، در صورت لزوم حالت passive را تنظیم کنید، خطاها (FTP_FAILED) را مدیریت کنید و پس از اتمام اتصال را ببندید و فایل موقت را در صورت موفقیت به نام نهایی تغییر نام دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از ftp_nb_get برای دانلود غیرمسدود این امکان را میدهد که بدون قفل کامل اسکریپت، پیشرفت دانلود را پیگیری کنید. برای شروع، مطمئن شوید افزونه FTP PHP فعال است، گزینه PASSIVE فعال باشد و از ftp_size برای بدست آوردن اندازه فایل راه دور استفاده کنید. در حلقه با استفاده از ftp_nb_continue تا رسیدن به FTP_FINISHED ادامه دهید و پس از هر بار اجرای حلقه، اندازه فایل محلی را با اندازه راه دور مقایسه کنید تا درصد پیشرفت محاسبه شود و خطاهای FTP_FAILED مدیریت شوند. در پایان، فایل موقت را به نام نهایی تغییر داده، اتصال را ببندید و در صورت موفقیت به کاربر اطلاع دهید.
گزارش