Saltar al contenido

ftp_fput()

¿Qué es ftp_fput()?

La función ftp_fput() es una función integrada de PHP que sube un archivo al servidor FTP. La función acepta cinco parámetros:

  1. ftp_stream: El identificador de conexión devuelto por la función ftp_connect().
  2. remote_file: El nombre del archivo remoto al que se debe subir el archivo.
  3. local_file: Un recurso de descriptor de archivo abierto con fopen() que apunta al archivo local que se va a subir.
  4. mode (opcional): El modo de transferencia (FTP_ASCII o FTP_BINARY). El valor predeterminado es FTP_ASCII.
  5. startpos (opcional): La posición inicial en el archivo remoto para la subida. El valor predeterminado es 0.

A diferencia de ftp_put(), que acepta una cadena con la ruta del archivo local, ftp_fput() requiere un recurso de descriptor de archivo abierto.

La función devuelve un valor booleano. Si la función tiene éxito al subir el archivo, devuelve true. De lo contrario, devuelve false.

Sintaxis de ftp_fput()

La sintaxis de la función ftp_fput() es la siguiente:

Sintaxis de ftp_fput()

php
bool ftp_fput ( resource $ftp_stream , string $remote_file , resource $local_file [, int $mode = FTP_ASCII [, int $startpos = 0 ]] )

Uso de ftp_fput()

Para usar la función ftp_fput(), primero debes establecer una conexión con el servidor FTP utilizando la función ftp_connect(). Aquí tienes un ejemplo:

Uso de ftp_fput() en PHP

php
<?php

// Set up an FTP connection
$conn = ftp_connect('ftp.example.com');
if (!$conn) {
    die("Could not connect to FTP server.");
}

// Login with your FTP credentials
if (!ftp_login($conn, 'username', 'password')) {
    die("Login failed.");
}

// Open the local file
$local_file = fopen('/local/directory/local_file.txt', 'r');
if (!$local_file) {
    die("Could not open local file.");
}

// Upload the file to the remote FTP server
if (ftp_fput($conn, 'remote_file.txt', $local_file, FTP_ASCII)) {
    echo "File uploaded successfully.\n";
} else {
    echo "Failed to upload the file.\n";
}

// Close the file handle and FTP connection
fclose($local_file);
ftp_close($conn);

En este ejemplo, establecemos una conexión con el servidor FTP usando la función ftp_connect() y verificamos que se realizó correctamente. Luego, iniciamos sesión con nuestras credenciales FTP usando ftp_login() y verificamos si hay errores. A continuación, abrimos el archivo local con fopen() para obtener el descriptor de archivo necesario. Finalmente, subimos el archivo al servidor FTP remoto usando ftp_fput() y cerramos tanto el descriptor de archivo como la conexión FTP.

Manejo de errores en ftp_fput()

Es importante manejar los errores correctamente al usar la función ftp_fput(). Si la función devuelve false, significa que el archivo no se pudo subir por alguna razón. Aquí tienes un ejemplo de cómo manejar los errores:

Manejo de errores en ftp_fput()

php
<?php

// Assuming $conn is already established via ftp_connect() and ftp_login()
$local_file = fopen('/local/directory/local_file.txt', 'r');
if ($local_file && ftp_fput($conn, 'remote_file.txt', $local_file, FTP_ASCII) === false) {
    echo "Failed to upload the file.\n";
} else {
    echo "File uploaded successfully.\n";
}
fclose($local_file);

En este ejemplo, verificamos el valor de retorno de la función ftp_fput(). Si es false, mostramos un mensaje de error; de lo contrario, mostramos un mensaje de éxito. Recuerda siempre cerrar el descriptor de archivo con fclose() después de la operación.

Conclusión

La función ftp_fput() es una función útil integrada en PHP que te permite subir un archivo a un servidor FTP. Siguiendo las pautas y mejores prácticas descritas en este artículo, puedes usar la función ftp_fput() en tus proyectos PHP con total confianza.

Práctica

¿Qué hace la función fput en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.