Foros del Web » Programando para Internet » PHP »

php y ftp

Estas en el tema de php y ftp en el foro de PHP en Foros del Web. La verdad no se si ya este posteado este tema, y se que existe demasiada informacion de como enviar archivos grandes por ftp mediante php. ...
  #1 (permalink)  
Antiguo 17/07/2009, 12:16
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
php y ftp

La verdad no se si ya este posteado este tema, y se que existe demasiada
informacion de como enviar archivos grandes por ftp mediante php.

pero la verdad es que no me funciona ningun metodo.
espero y me puedan ayudar.

Tengo este codigo que me ejecuta la subida al servidor ftp

Código PHP:
$conexion=ftp_connect("racanix.com")or die("error al conectar");
        
        
ftp_login($conexion,'racanix','racanix') or die("error en login");
    
ftp_pasv($conexion,true) or die("error en modo pasivo");
        
ftp_put($conexion,"/img/screenshot.png","/home/racanix/EscritorioWinMSN7screenshot.png",FTP_BINARY) or die("<br>error al sibir");
        
ftp_quit($conexion) or die("error al desconectar"); 
Crei que con este codigo seria suficiente subir los archivos al servidor. pero en la
funcion ftp_put me retorna el error.. crei que era por el directorio que no encontraba
la ruta pero esta si existe, cambie permisos y aun no funciona.
alguien podria ayudarme, o dar alguna otra sugerencia.

de ate mano gracias
  #2 (permalink)  
Antiguo 17/07/2009, 13:08
 
Fecha de Ingreso: noviembre-2008
Mensajes: 67
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: php y ftp

Estimado:

Yo tambien tenia problemas para subir un archivo a un sitio ftp.

pero lo he podido solucionar. te dejo de ejemplo el codigo que use.

Código PHP:
<?php
        $ftp 
= array(
            
'user' => 'usuario',
            
'pass' => 'password',
            
'host' => 'ftp.tusitio.com',
            
'dest' => '/base_resultante/'//directorio
            
'mode' => 'I',
            
'overwrite' => (bool)// sobre escritura 1 si 0 no
        
);

        
$handle ftp_connect($ftp['host'], 2130);
        if (!
$handle
        {
            
$error_ftp "La conexion al sitio ftp no se pudo realizar correctamente, intente nuevamente.";
        
        } 
        else 
        {
            
            
$res ftp_login($handle$ftp['user'], $ftp['pass']);
            if (!
$res
            {
                
$error_ftp "El login o la clave del ftp no es correcta, favor comunicar al administrador del sitio";
            } 
            else 
            {
                echo 
"Se Conecto Bien al FTP";
                
ftp_pasv($handletrue);
                
$erg ftp_chdir($handle$ftp['dest']);
                if (!
$erg
                {
                    
$error_ftp "No puedo cambiar de directorio en el ftp.";
                } 
                else 
                {
                    
$repositorio "archivos";
                    
//Nombre de Carpeta Origina
                    
$archivito "PRUEBA.txt";
                    
//nombre del Archivo
                    
                    
$local_file  getcwd()."/".$repositorio."/".$archivito;
                    
$remote_file $archivito;
                    
$mode = ($ftp['mode'] == 'I') ? FTP_BINARY FTP_ASCII;
                    

                    if (
function_exists('ftp_nb_put'))
                    {
                        
$res ftp_nb_put($handle$remote_file,$local_file$mode);
                        
$h ".";
                        while (
$res == FTP_MOREDATA
                        {
                            
$res ftp_nb_continue($handle);
                        }
                    } 
                    else 
                    {
                        
$res ftp_put($handle$remote_file$local_file,$mode);
                    }

                    if (!
$res
                    {
                        
$error_ftp "El Archivo '$local_file' no pudo ser subido al servidor.";
                                        
///NET_FTP_ERR_UPLOADFILE_FAILED
                    
}
                }
            }
            
$res ftp_close($handle);
        }

?>
Saludos Patux
  #3 (permalink)  
Antiguo 17/07/2009, 14:28
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: php y ftp

Gracias por tu apoyo voy a interntar...
hay les comento como me fue
  #4 (permalink)  
Antiguo 17/07/2009, 14:45
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: php y ftp

Algunas dudas el script que pusiste.

$remote_file contiene el archivo en viado por post desde un fileupload ??

$archivo_local es la ruta completa donde colocaras el nuevo archivo pero en el servidor??

nadamas tengo esas pequeñas dudas

Gracias nuevamente
  #5 (permalink)  
Antiguo 20/07/2009, 09:47
 
Fecha de Ingreso: noviembre-2008
Mensajes: 67
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: php y ftp

$local_file es de donde extraigo el archivo fisico para enviar al ftp

$remote_file es el nombre que le otorgo a dicho archivo, que acabo de subir.

atte. Patux
  #6 (permalink)  
Antiguo 20/07/2009, 14:50
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: php y ftp

ya probe y como todo los escripts me falla en la funcion
ftp_put...
hay algo que configurar en el ftp... o tienen alguna
idea de porq no funciona
  #7 (permalink)  
Antiguo 20/07/2009, 16:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 67
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: php y ftp

podrias postear como modificaste el codigo para mirar si te equivocaste en algo. ademas que tamaño tiene el archivo?, que servidor web usas?.

saludos.

Patux.
  #8 (permalink)  
Antiguo 20/07/2009, 16:48
 
Fecha de Ingreso: noviembre-2008
Mensajes: 67
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: php y ftp

podrias intentar lo siguiente... dado que nunca me ha dado problemas mi pagina.

darle todos los permiso a la carpeta en linux con chmod 0777 carpeta, lo otro es revisar bien la ruta del ftp.
saludos Patux
  #9 (permalink)  
Antiguo 21/07/2009, 09:09
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: php y ftp

ya di permisos a la carpeta como comentaste y este es el codigo que tengo

Código PHP:
        $ftp = array(
            
'user' => 'serv',
            
'pass' => 'pass',
            
'host' => '192.168.2.200',
            
'dest' => '/img/'//directorio
            
'mode' => 'I',
            
'overwrite' => (bool)// sobre escritura 1 si 0 no
        
);

        
$handle ftp_connect($ftp['host'], 2130);
        echo 
"<br>Conexion -> ".$handle;
        if (!
$handle)
        {
            
$error_ftp "La conexion al sitio ftp no se pudo realizar correctamente, intente nuevamente.";

        }
        else
        {

            
$res ftp_login($handle$ftp['user'], $ftp['pass']);
            if (!
$res)
            {
                
$error_ftp "El login o la clave del ftp no es correcta, favor comunicar al administrador del sitio";
            }
            else
            {
                echo 
"Se Conecto Bien al FTP";
ftp_pasv($handletrue);
                
$erg ftp_chdir($handle$ftp['dest']);
                echo 
"<br>Directorio chdir -> ".$erg;
                if (!
$erg)
                {
                    
$error_ftp "No puedo cambiar de directorio en el ftp.";
                }
                else
                {
                    
//$repositorio = "archivos";
                    //Nombre de Carpeta Origina
                    
$archivito $_FILES['arch']['name'];
                    
//nombre del Archivo

                        
$local_file  getcwd()."/img/".$archivito;
                    
$remote_file $archivito;
                    
$mode = ($ftp['mode'] == 'I') ? FTP_BINARY FTP_ASCII;


                    if (
function_exists('ftp_nb_put'))
                    {
                        
$res ftp_nb_put($handle$remote_file,$local_file$mode);
                        echo 
"<br>Resultado de ftp_nb_put ->
"
.$res;
                        
$h ".";
                        while (
$res == FTP_MOREDATA)
                        {
                            
$res ftp_nb_continue($handle);
                        }
                        echo 
"<br>Local file -> ".$local_file;
                        echo 
"<br>Remote File -> ".$remote_file;
                        echo 
"<br>Resultado del ftp_put -> ".$res;
                    }
                    else
                    {
                        
$res ftp_put($handle$remote_file$local_file,$mode);
                        echo 
"<br>Local fiule -> ".$local_file;
                        echo 
"<br>Remote File -> ".$remote_file;
                        echo 
"<br>Resultado del ftp_put -> ".$res;
                    }

                    if (!
$res)
{
                        
$error_ftp "El Archivo '$local_file' no pudo ser subido al servidor.";
                                        
///NET_FTP_ERR_UPLOADFILE_FAILED
                    
}
                }
            }
            
$res ftp_close($handle);
        }echo 
"<br>Que paso ?? -> ".$res
  #10 (permalink)  
Antiguo 21/07/2009, 09:54
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: php y ftp

Mira este es el error que me marca

Cita:
ftp_nb_put(/home/cluster/animacion/app/webroot/img/cake_1.2.3.8166.zip) [function.ftp-nb-put]: failed to open stream: No such file or directory [APP/controllers/archivos_controller.php, line 69]
  #11 (permalink)  
Antiguo 21/07/2009, 11:37
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: php y ftp

Alfin funciono creo que el problem era como empleaba las funciones del ftp
Gracias por todo

nos vemos
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 10:44.