Descarga de archivos FTP con PHP
Estoy tratando de crear un botón de descarga en mi página web, utilizando FTP. Pero cuando intento hacer esto, el archivo descargado se guarda en la máquina que alberga mi sitio web y no en la PC de los usuarios, lo cual es lo que quiero. ¿No es posible hacerlo para que el archivo se pueda descargar normalmente desde el FTP como se muestra en la imagen de abajo?
Esta es la función de descarga de FTP que tengo actualmente, la cual descarga el archivo en la carpeta de proyecto de mi sitio web.
function FTP_download($id) {
ob_end_flush();
$remote_file = $id.'.log';
$local_file = $id.'.log';
$conn_id = ftp_connect($this->ftp_server);
$login_result = ftp_login($conn_id, $this->ftp_user_name, $this->ftp_user_pass);
// Tratar de descargar $server_file y guardar en $local_file
if (ftp_get($conn_id, $local_file, $remote_file, FTP_BINARY)) {
echo "Escrito correctamente en $local_file\n";
} else {
echo "Hubo un problema\n";
}
// Cerrar la conexión
ftp_close($conn_id);
}
davy.ai
Para permitir que el usuario descargue el archivo desde FTP directamente a su máquina, puedes modificar la función FTP_download para utilizar la función de encabezado de PHP y forzar una ventana de descarga en el navegador del usuario. Aquí tienes un ejemplo:
Esta función actualizada utiliza la función de encabezado de PHP para establecer el tipo de contenido como datos binarios y especificar un nombre de archivo para la ventana de descarga. Luego utiliza la función ftp_fget para recuperar el archivo de FTP y enviarlo directamente al navegador del usuario utilizando el flujo ‘php://output’. Esto provocará que el usuario descargue el archivo en su máquina en lugar de guardarlo en el servidor web.