ftp_nb_put (ftp_nb_put)
تابع ftp_nb_put فایل محلی را غیرمسدودکننده آپلود می کند. «غیرمسدودکننده (Non-blocking)» یعنی برنامه قفل نمی شود. بنابراین می توانی همزمان کارهای دیگر انجام دهی. «حالت انتقال (Transfer mode)» می تواند FTP_ASCII یا FTP_BINARY باشد.
ftp_nb_put چه می کند؟
فایل محلی را به مسیر مقصد روی سرور FTP می فرستد. سپس با ftp_nb_continue روند آپلود را ادامه می دهی تا تمام شود.
سینتکس
ftp_nb_put(ftp_conn, remote_file, local_file, mode, startpos);
مثال: آپلود غیرمسدودکننده از فایل محلی
<?php
// اتصال و ورود به سرور FTP
$ftp_server = "ftp.example.com";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$local_file = "localfile.txt";
$server_file = "serverfile.txt";
// شروع آپلود غیرمسدودکننده
$d = ftp_nb_put($ftp_conn, $server_file, $local_file, FTP_BINARY);
while ($d == FTP_MOREDATA) {
// اینجا کارهای دیگر انجام بده
// ادامه آپلود را پیگیری کن
$d = ftp_nb_continue($ftp_conn);
}
if ($d != FTP_FINISHED) {
echo "Error uploading $local_file";
exit(1);
}
// بستن اتصال
ftp_close($ftp_conn);
?>
گام های عملی
- به سرور FTP وصل شو و لاگین کن.
- مسیر محلی و مسیر سرور را مشخص کن.
ftp_nb_putرا با حالت درست صدا بزن.- با
ftp_nb_continueوضعیت را بررسی کن. - در پایان نتیجه را چک کن و اتصال را ببند.
نکات و هشدارها
نکته: مقدار بازگشتی می تواند FTP_FAILED، FTP_MOREDATA یا FTP_FINISHED باشد.
نکته: برای فایل های دودویی از FTP_BINARY استفاده کن تا خراب نشوند.
هشدار: مسیر مقصد را دقیق بده؛ ممکن است فایل قبلی بازنویسی شود.
صفحات مرتبط و تکمیلی
اگر نیاز به ادامه روند داشتی از ftp_nb_continue کمک بگیر. همچنین ftp_put نسخه مسدودکننده است. برای ارسال از فایل باز، ftp_nb_fput را ببین. همین طور آپلود غیرمسدودکننده FTP برای سناریوی دریافت مرتبط است.
لینک های منبع
- W3Schools: ftp_nb_put() توضیح تابع و مثال.
- W3Schools: PHP FTP Reference فهرست توابع FTP.
جمع بندی سریع
- آپلود بدون قفل شدن برنامه انجام می شود.
- پیشرفت با
ftp_nb_continueپیگیری می شود. FTP_BINARYبرای فایل های دودویی ایمن تر است.- بازنویسی فایل مقصد را در نظر بگیر.