Saltar al contenido

Crear y cargar un archivo en PHP a un servidor FTP sin guardar localmente

Contamos con la solución a este enigma, al menos eso deseamos. Si continuas con interrogantes puedes dejarlo en el apartado de comentarios y sin dudarlo te ayudaremos

Solución:

He respondido aquí en lugar de los comentarios, ya que los comentarios ignoran el formato del código.

tu podrías intentar:


$fp = fopen('php://temp', 'r+');
fwrite($fp, $out);
rewind($fp);       
ftp_fput($ftp_conn, $remote_file_name, $fp, FTP_ASCII);

esto creará un flujo temporal sin escribirlo realmente en el disco. no conozco otra manera

Aquí está la solución de matei desde arriba como función completa ftp_file_put_contents():

function ftp_file_put_contents($remote_file, $file_string) 

// FTP login details
$ftp_server='my-ftp-server.de'; 
$ftp_user_name='my-username'; 
$ftp_user_pass='my-password';

// Create temporary file
$local_file=fopen('php://temp', 'r+');
fwrite($local_file, $file_string);
rewind($local_file);       

// FTP connection
$ftp_conn=ftp_connect($ftp_server); 

// FTP login
@$login_result=ftp_login($ftp_conn, $ftp_user_name, $ftp_user_pass); 

// FTP upload
if($login_result) $upload_result=ftp_fput($ftp_conn, $remote_file, $local_file, FTP_ASCII);

// Error handling
if(!$login_result or !$upload_result)

    echo('

FTP error: The file could not be written to the FTP server.

'); // Close FTP connection ftp_close($ftp_conn); // Close file handle fclose($local_file); // Function call ftp_file_put_contents('my-file.txt', 'This text will be written to your text file via FTP.');

En realidad, ftp_put espera la ruta al archivo local (como string), así que intente escribir los datos en un archivo temporal y luego ftp_póngalo en el servidor


file_put_contents('/tmp/filecontent'.session_id(), $out);
ftp_put($ftp_conn, $remote_file_name, '/tmp/filecontent'.session_id());
unlink('/tmp/filecontent'.session_id()); 

En este caso, no necesita enviar los encabezados que estaba enviando en su ejemplo.

Te invitamos a añadir valor a nuestro contenido colaborando tu veteranía en las aclaraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *