ftp_async_get

(unknown)

ftp_async_get -- Retrieves a file from the FTP server asynchronly and writes it to a local file

Description

bool ftp_async_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])

ftp_async_get() retrieves remote_file from the FTP server, and saves it to local_file locally. The transfer mode specified must be either FTP_ASCII or FTP_BINARY. The difference between ftp_get() is that this function retrieves the file asyncronously, so you can do other things in your program while the file is downloaded.

Returns TRUE on success, FALSE on error.

Példa 1. ftp_async_get() example

// Initate the download
$ret = ftp_async_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
   
   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_async_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}

Példa 2. Resuming a download with ftp_async_get()

// Initate 
$ret = ftp_async_get ($my_connection, "test", "README", FTP_BINARY, 
                      filesize("test"));
// OR: $ret = ftp_async_get ($my_connection, "test", "README", 
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
   
   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_async_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}

Példa 3. Resuming a download at position 100 to a new file with ftp_async_get()

// Disable Autoseek
ftp_set_option ($my_connection, FTP_AUTOSEEK, FALSE);

// Initiate
$ret = ftp_async_get ($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   ...
   
   // Continue downloading...
   $ret = ftp_async_continue ($my_connection);
}

In the example above, "newfile" is 100 bytes smaller than "README" on the FTP server because we started reading at offset 100. If we have not have disabled FTP_AUTOSEEK the first 100 bytes of newfile will be '\0'.

See also ftp_async_fget(), ftp_async_continue(), ftp_get() and ftp_fget().