PHP ftp_nb_put()
Giới thiệu về PHP ftp_nb_put()
Hàm ftp_nb_put()
trong PHP được sử dụng để tải lên tệp từ máy khách lên máy chủ FTP theo cách không đồng bộ (non-blocking). Hàm này cho phép bạn tải tệp lên trong khi vẫn có thể thực hiện các tác vụ khác trong chương trình mà không bị chờ đợi tệp tải lên hoàn tất.
Cú pháp
ftp_nb_put(resource $ftp_stream, string $remote_file, string $local_file, int $mode);
Tham số
- resource $ftp_stream: Luồng kết nối FTP mà bạn đã mở trước đó bằng hàm
ftp_connect()
vàftp_login()
. - string $remote_file: Tên tệp trên máy chủ FTP mà bạn muốn tải lên.
- string $local_file: Đường dẫn tới tệp trên máy khách mà bạn muốn tải lên máy chủ.
- int $mode: Chế độ tải lên. Có thể là
FTP_ASCII
cho tệp văn bản hoặcFTP_BINARY
cho tệp nhị phân.
Giá trị trả về
Hàm trả về một giá trị nguyên đại diện cho trạng thái tải lên:
FTP_MOREDATA
: Tải lên vẫn đang diễn ra.FTP_FINISHED
: Tải lên đã hoàn tất hoặc xảy ra lỗi.
Cách sử dụng
Dưới đây là một ví dụ đơn giản để minh họa cách sử dụng ftp_nb_put()
cùng với vòng lặp để kiểm tra trạng thái tải lên:
$ftp_server = "ftp.example.com"; $ftp_user_name = "username"; $ftp_user_pass = "password"; $local_file = "local.txt"; $remote_file = "remote.txt"; // Kết nối đến FTP $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); $login = ftp_login($ftp_conn, $ftp_user_name, $ftp_user_pass); // Tải lên tệp không đồng bộ $mode = FTP_BINARY; $upload = ftp_nb_put($ftp_conn, $remote_file, $local_file, $mode); // Vòng lặp kiểm tra trạng thái while ($upload == FTP_MOREDATA) { $upload = ftp_nb_continue($ftp_conn); } // Kiểm tra kết quả if ($upload != FTP_FINISHED) { echo "Có lỗi xảy ra trong quá trình tải lên."; } else { echo "Tệp đã được tải lên thành công."; } // Đóng kết nối ftp_close($ftp_conn);
Kết luận
Hàm ftp_nb_put()
rất hữu ích khi bạn cần tải lên tệp mà không làm gián đoạn các tác vụ khác trong ứng dụng. Bằng cách sử dụng nó cùng với ftp_nb_continue()
, bạn có thể dễ dàng theo dõi tiến trình tải lên và xử lý các trường hợp lỗi khi cần thiết.