PHP 5.6.0 released

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fputAlmacena un archivo desde un archivo abierto en el servidor FTP (modo no-bloqueo)

Descripción

int ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_nb_fput() carga los datos desde un apuntador de archivo a un archivo remoto en el servidor FTP.

La diferencia entre esta función y ftp_fput() es que esta función carga el archivo de forma asincrónica, de modo que su programa puede realizar otras operaciones mientras el archivo está siendo cargado.

Parámetros

ftp_stream

El identificador de enlace de la conexión FTP.

remote_file

La ruta del archivo remoto.

handle

Un apuntador de archivo abierto en el archivo local. La lectura se detiene al final del archivo.

mode

El modo de transferencia. Debe ser FTP_ASCII o FTP_BINARY.

startpos

La posición en el archivo remoto para empezar a subirlo.

Valores devueltos

Devuelve FTP_FAILED o FTP_FINISHED o FTP_MOREDATA.

Ejemplos

Ejemplo #1 Ejemplo de ftp_nb_fput()

<?php

$file 
'index.php';

$fp fopen($file'r');

$conn_id ftp_connect($ftp_server);

$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// Iniciar la carga
$ret ftp_nb_fput($conn_id$file$fpFTP_BINARY);
while (
$ret == FTP_MOREDATA) {

   
// Haga lo que quiera
   
echo ".";

   
// Continuar la carga...
   
$ret ftp_nb_continue($conn_id);
}
if (
$ret != FTP_FINISHED) {
   echo 
"Hubo un error al subir el archivo...";
   exit(
1);
}

fclose($fp);
?>

Ver también

  • ftp_nb_put() - Almacena un archivo en el servidor FTP (modo no-bloqueo)
  • ftp_nb_continue() - Continúa recuperando/enviando un archivo (modo no-bloqueo)
  • ftp_put() - Carga un archivo al servidor FTP
  • ftp_fput() - Carga un archivo abierto en el servidor FTP

add a note add a note

User Contributed Notes 1 note

up
0
jascha at bluestatedigital dot com
9 years ago
There is an easy way to check progress while uploading a file.  Just use the ftell function to watch the position in the file handle.  ftp_nb_fput will increment the position as the file is transferred.

Example:

<?

    $fh
= fopen ($file_name, "r");
   
$ret = ftp_nb_fput ($ftp, $file_name, $fh, FTP_BINARY);
    while (
$ret == FTP_MOREDATA) {
        print
ftell ($fh)."\n";
       
$ret = ftp_nb_continue($ftp);
    }
    if (
$ret != FTP_FINISHED) {
        print (
"error uploading\n");
        exit(
1);
    }
   
fclose($fh);

?>

This will print out the number of bytes transferred thus far, every time the loop runs.  Coverting this into a percentage is simply a matter of dividing the number of bytes transferred by the total size of the file.
To Top