# ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put — Stores a file on the FTP server (non-blocking)

### Description

int ftp_nb_put ( resource `$ftp_stream` , string `$remote_file` , string `$local_file` , int `$mode` [, int `$startpos` ] )

ftp_nb_put() stores a local file on the FTP server.

The difference between this function and the ftp_put() is that this function uploads the file asynchronously, so your program can perform other operations while the file is being uploaded.

### Parameters

`ftp_stream`

  The link identifier of the FTP connection.

`remote_file`

  The remote file path.

`local_file`

  The local file path.

`mode`

  The transfer mode. Must be either `FTP_ASCII` or `FTP_BINARY`.

`startpos`

### Return Values

Returns `FTP_FAILED` or `FTP_FINISHED` or `FTP_MOREDATA`.

### Examples

Example#1 ftp_nb_put() example

`<?php
// Initiate the Upload
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue uploading...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "There was an error uploading the file...";
exit(1);
}
?>`

Example#2 Resuming an upload with ftp_nb_put()

`<?php
// Initiate
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
FTP_BINARY, ftp_size("test.remote"));
// OR: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue uploading...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "There was an error uploading the file...";
exit(1);
}
?>`

### See Also

- ftp_nb_fput()
- ftp_nb_continue()
- ftp_put()
- ftp_fput()