Foros del Web » Programando para Internet » PHP »

problema con FTP

Estas en el tema de problema con FTP en el foro de PHP en Foros del Web. Saludos. Debo importar unos archivos de informix al PC local por FTP y me funciona pero lo manda es al servidor y necesito que esos ...
  #1 (permalink)  
Antiguo 10/08/2006, 11:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 650
Antigüedad: 12 años, 9 meses
Puntos: 2
Pregunta problema con FTP

Saludos.

Debo importar unos archivos de informix al PC local por FTP y me funciona pero lo manda es al servidor y necesito que esos archivos los importe en el PC local; como hago eso????

Agradezco la ayuda y sugerencias que me puedan brindar...
  #2 (permalink)  
Antiguo 10/08/2006, 12:03
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
O sea, lo q kieres es pasar archivos de un FTP a otro FTP, no?

Obligatoriamente para q PHP utilice esos archivos deben de pasar al servidor... no sé si habrá manera de sincronizar ambos directamente pero quizás te sirva de ayuda la clase KioobFTP la cual tiene funciones para pasar archivos de un FTP a otro FTP...

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 10/08/2006, 14:00
 
Fecha de Ingreso: febrero-2005
Mensajes: 650
Antigüedad: 12 años, 9 meses
Puntos: 2
Busqueda Este es mi codigo...

<html>
<head>
<title>Importar archivos de Rsn</title>
<script type="text/javascript">
function ValidaVacios()
{
if(form1.txtUsuario.value=='')
{
alert('No ha digitado el nombre del usuario')
form1.txtUsuario.focus()
return false
}
if(form1.txtClave.value=='')
{
alert('No ha digitado la clave del usuario')
form1.txtClave.focus()
return false
}
if(form1.txtArchivo.value=='')
{
alert('No ha digitado el nombre del archivo a importar')
form1.txtArchivo.focus()
return false
}
return true
}
</script>
</head>

<form name="form1" method="post" action="">
<table width="40%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><div align="center"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Importar
Ficheros de Rsn</strong></font></div></td>
</tr>
<tr>
<td><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Usuario</font></div></td>
<td><input name="txtUsuario" type="text" id="txtUsuario" value="<? echo $_REQUEST[txtUsuario]?>"></td>
</tr>
<tr>
<td><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Clave</font></div></td>
<td><input name="txtClave" type="password" id="txtClave" value="<? echo $_REQUEST[txtClave]?>"></td>
</tr>
<tr>
<td colspan="2"><font color="#000066" size="2" face="Verdana, Arial, Helvetica, sans-serif">Debe existir el directorio Planos para importar
los archivos</font></td>
</tr>
</table>
<table width="40%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="51%"><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nombre
del archivo a importar</font></div></td>
<td width="49%"><input name="txtArchivo" type="text" id="txtArchivo"></td>
</tr>
<tr>
<td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Reportes</font>
<input name="chkReporte" type="checkbox" id="chkReporte" value="checkbox"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="button" name="Submit" value="Importar" onClick="if(ValidaVacios()==true){form1.Accion.val ue='Importar';form1.submit();}">
<input name="Accion" type="hidden" id="Accion">
</div></td>
</tr>
</table>
</form>
</html>
<?php
if($_POST['Accion']=='Importar')
{
$Conect = ftp_connect("10.10.88.205");
if($Conect){}
else
{echo "No se pudo conectar con servidor";exit;}
$resultado_login = ftp_login($Conect, $_REQUEST['txtUsuario'], $_REQUEST['txtClave']);

$Dir = ftp_pwd($Conect);


$archivo_local = $_REQUEST['txtArchivo'];
if($_POST['chkReporte'])
{
$archivo_remoto = $Dir."/reportes/".$archivo_local;
}
else
{
$archivo_remoto = $Dir."/".$archivo_local;
}
$gestor = fopen("C:/Planos/".$archivo_local, 'w');
if (ftp_get($Conect, $gestor, $archivo_remoto, FTP_ASCII, 0))
{
echo "<script>
alert('Se ha importado exitosamente el archivo $archivo_local')
</script>";
}
else
{
echo "<script>
alert('Error al importar el archivo $archivo_local')
</script>";
}

// cerrar la conexion y el gestor de archivo
ftp_quit($Conect);
fclose($gestor);
}
?>

En la variable $Gestor almaceno la ruta donde lo quiero guardar pero lo hace en el servidor; hay alguna forma de pasarlo a mi maquina local????
  #4 (permalink)  
Antiguo 10/08/2006, 14:11
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Si tienes tu mákina lokal como servidor web o ftp puedes abrir otra conexión una vez obtenido el fichero en el servidor para trasladarlo al tuyo propio. Por eso te puse la clase en mi respuesta anterior ya q tiene funciones muy útiles para el traspaso entre 2 servidores FTP. Incluso directorios completos de manera q no tendrías q ir fichero a fichero.

Pero claro, si tuvieras tu mákina como servidor... ¿para q ibas a ejecutar el código de obtención en un servidor ajeno?

A ver si aparece alguien y aporta algo q no sepamos q sirva.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #5 (permalink)  
Antiguo 10/08/2006, 14:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 650
Antigüedad: 12 años, 9 meses
Puntos: 2
No entiendo esa clase...

Saludos djreficul

Baje los dos archivos que tiene la pagina que me comentaste pero no se como hacer para ejecutarlo...

Donde encuentro ejemplos???

Agradezco de antemano tu respuesta.
  #6 (permalink)  
Antiguo 10/08/2006, 14:27
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Un ejemplo:

Código PHP:
include 'KioobFTP.php';
$ftp=new KFTP ($urlftp,$portftp,$userftp,$passftp);
if (
$ftp->connect()) {
    echo 
"Conectado al ftp $urlftp<br>";
    if (
$ftp->chdir($carpeta)) {
        echo 
"Entra en la carpeta $carpeta<br>";
        if (!
$ftp->is_dir($carpetanueva)) {
            if (
$ftp->mkdir($carpetanueva)) {
                echo 
"Se creó la carpeta $carpetanueva<br>";
            } else {
                echo 
"No se pudo crear la carpeta $carpetanueva<br>".$ftp->last_error()."<br>";
                
$ftp->close();
                exit;
            }
        } else {
            echo 
"La carpeta $carpetanueva ya existe y no se creará<br>";
        }
        if (
$ftp->uploaddir("java",$carpetanueva)) {
            echo 
"Se subio el directorio completo $carpetanueva<br>";
        } else {
            echo 
"No se pudo subir el directorio ftp a $carpetanueva<br>".$ftp->last_error()."<br>";
        }
        
//Vamos a bajarnos un ficherito
        
if ($ftp->get($carpetanueva.".txt","Prueba.txt")) {
            echo 
"Se descargo el fichero Prueba.txt como $carpetanueva.txt<br>";
        } else {
            echo 
"No se pudo descargar el fichero Prueba.txt<br>".$ftp->last_error()."<br>";
        }
    } else {
        echo 
"No entra en la carpeta $carpeta<br>".$ftp->last_error()."<br>";
    }
    
$ftp->close();
} else {
    echo 
"No se pudo conectar a $urlftp".$ftp->last_error()."<br>";

Abre el KFTP_Main.php y lee las funciones, están comentadas en inglés pero si entiendes un poko sabrás qué hace cada una. Cuidado con las funciones privadas, mira sólo las públicas.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #7 (permalink)  
Antiguo 10/08/2006, 15:27
 
Fecha de Ingreso: febrero-2005
Mensajes: 650
Antigüedad: 12 años, 9 meses
Puntos: 2
Mensaje Disculpa mi ignorancia

Estuve revisando y me salio este error:

Parse error: parse error, unexpected T_ELSEIF in C:\Archivos de programa\Apache Group\Apache2\htdocs\ftp\KFTP_Basic_Classic.php on line 85

Pero veo que todos los corchetes del if estan bien.....

Otra preguntica; se puede importar varios archivos a la vez?? ej: archivo01,archivo02,archivo03; dandole archivo*


Agradezco de antemano tu ayuda
  #8 (permalink)  
Antiguo 11/08/2006, 03:17
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por tattojk Ver Mensaje
Estuve revisando y me salio este error:

Parse error: parse error, unexpected T_ELSEIF in C:\Archivos de programa\Apache Group\Apache2\htdocs\ftp\KFTP_Basic_Classic.php on line 85

Pero veo que todos los corchetes del if estan bien.....

Otra preguntica; se puede importar varios archivos a la vez?? ej: archivo01,archivo02,archivo03; dandole archivo*


Agradezco de antemano tu ayuda
Sobre el parse error, exa un vistazo a la linea 84 a ver si falta un ; o una ]... xq no me extrañaría, creo recordar q tb tuve q tokar algo x ahí, jeje.

Sobre importar varios archivos a la vez... supongo q con un bucle y pasandole el parametro a la funcion upload o download (get o put, o con la "x" delante si tranfieres de un FTP a otro), depende de lo q hagas, podrás hacerlo. Pero si lo distribuyes en un directorio es mejor usar downloaddir (uploaddir o incluso synchronize q lo veo muy potente).
Tenerlo todo ordenadito es fundamental para poder gestionar transferencias de un sitio a otro.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:40.