Quiero obtener un fichero con los paises que tengo almacenados en una base de datos.
Una vez los tengo generados , quiero guardar esos datos en un fichero que quiero subir por ftp.
El problema es que cuando intento subir por ftp los datos que acabo de generar , me dá error en la carga
$carga = ftp_put($id_con, $archivo_destino, $archivo_fuente, FTP_BINARY);
Y supongo que es porque el archivo fuente no tiene una ruta porque lo he generado previamente.....
Alguien sabe como obtener un fichero y después (sin guardarlo en el disco local), subirlo automáticamente por ftp?
Código PHP:
<?php
// obtenemos el contenido
$contenido="";
$db = @mssql_connect("localhost","usuario","password") or die("Unable to connect to server");
mssql_select_db("BaseDatos");
$result = mssql_query("SELECT * FROM paises");
for ($i=0; $i < mssql_num_rows($result); $i++) {
echo mssql_result($result,$i,"pais");
echo "\n";
$contenido = $contenido.mssql_result($result,$i,"pais")."\n";
}
?>
<?
// conexion por ftp
//nos conectamos por ftp
$servidor_ftp="123.456.789.123";
$nombre_usuario_ftp="usuario";
$contrasenya_ftp ="password";
$archivo_destino="archivo.csv";
$archivo_fuente= $contenido;
// establecer una conexion basica
$id_con = ftp_connect($servidor_ftp);
// inicio de sesion con nombre de usuario y contrasenya
$resultado_login = ftp_login($id_con, $nombre_usuario_ftp, $contrasenya_ftp);
// chequear la conexion
if ((!$id_con) || (!$resultado_login)) {
echo "¡La conexión FTP ha fallado!";
echo "Se ha intentado la conexion con $servidor_ftp para el " .
"usuario $nombre_usuario_ftp";
exit;
} else {
echo "Conectado con $servidor_ftp, para el usuario $nombre_usuario_ftp";
}
// cargar el archivo
$carga = ftp_put($id_con, $archivo_destino, $archivo_fuente, FTP_BINARY);
// chequear el status de la carga
if (!$carga) {
echo "¡La carga FTP ha fallado!";
} else {
echo "Se ha cargado $archivo_fuente a $servidor_ftp como $archivo_destino";
}
// cierra la secuencia FTP
ftp_close($id_con);
?>