Foros del Web » Programando para Internet » PHP »

Problemas con funciones FTP

Estas en el tema de Problemas con funciones FTP en el foro de PHP en Foros del Web. Hola amigos, tengo un problema con las funciones ftp. Quiero subir un archivo grande via ftp, y con las funciones ftp me conecta y lo ...
  #1 (permalink)  
Antiguo 18/06/2008, 02:14
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Problemas con funciones FTP

Hola amigos, tengo un problema con las funciones ftp. Quiero subir un archivo grande via ftp, y con las funciones ftp me conecta y lo pone en modo pasivo, pero no consigo que suba el archivo al servidor.

el fichero upload.php esta en una carpeta admin y la estructura quedaria asi:

/admin/upload.php
/archivo/

mi formulario es muy simple tiene un campo file que se llama archivo y esta correcto, creo, ya que tiene enctype="multipart/form-data"


Código HTML:
 <td>Archivo:</td><td><input type="file" name="archivo" maxlength=255></td></tr> 
y este es el fragmento de upload que no me funciona, a ver si me podeis echar una mano porque creo que la estoy liando con el ftp_put

Código PHP:
//Vamos ahora a por la subida ftp:
        //conectamos el ftp
        
$local$_FILES['archivo']['name'];
        
$remoto$_FILES['archivo']['tmp_name'];
      
$rutaarchivo="../archivo/";

        
$conn_id=ftp_connect("localhost");
        
$login=ftp_login($conn_id,$user,$pass);
        
// Si la conexion es correcta subimos el fichero
        
if  (($conn_id) && ($login))
        {
        echo 
"<center>Conexion ftp realizada....<br></center>";
        
// habilitar modo pasivo
        
ftp_pasv($conn_idtrue);
        
$upload=ftp_put($conn_id,$rutaarhivo.$local,$remoto,FTP_BINARY);
        if (
$upload)
        {
            echo 
"<center><b>Paso 3:</b> Archivo de audio subido con exito</center><br>";
        }
        else
        {
            echo 
"<center><b>Paso 3:</b> Archivo de audio subido con exito</center><br>";
            
$archivo=0;        
        }
        }
        else
        {
            echo 
"Fallo al conectar con el ftp <br>";
            
$archivo=0;
        } 
por los mensajes de error que me muestra el fallo esta en la subida ya que conecta y funciona el modo pasivo. No se si sera que el fallo esta en que estoy poniendo mal la ruta o estoy pillando mal los archivos

Muchas gracias por anticipado
  #2 (permalink)  
Antiguo 18/06/2008, 02:28
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Problemas con funciones FTP

No estas subiendo el fichero por FTP, lo estas subiendo con el formulario POST. La unica forma de subir via FTP un fichero desde el ordenador del que visita tu web a tu servidor web es que el ordenador del que te visita tenga un servidor FTP instalado y te conectes a el para bajarte su fichero a tu servidor.

Tal como lo estas haciendo no tiene sentido.
  #3 (permalink)  
Antiguo 18/06/2008, 02:33
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problemas con funciones FTP

Cita:
Iniciado por DarkJ Ver Mensaje
No estas subiendo el fichero por FTP, lo estas subiendo con el formulario POST. La unica forma de subir via FTP un fichero desde el ordenador del que visita tu web a tu servidor web es que el ordenador del que te visita tenga un servidor FTP instalado y te conectes a el para bajarte su fichero a tu servidor.

Tal como lo estas haciendo no tiene sentido.
DarkJ, lo primero muchas gracias por la contestacion. A ver si me puedes explicar mejor, entonces yo no puedo subir desde un administrador (esto es una parte de él) un fichero "grande" por FTP por medio de la funcion ftp_put?

Como me aconsejarias subir un fichero grande?

muchas gracias
  #4 (permalink)  
Antiguo 18/06/2008, 02:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Problemas con funciones FTP

Lo que te digo es que php se ejecuta en el servidor web, y para acceder a un ordenador que esta en el ordenador del visitante, este ultimo deberia tener instalado un servidor FTP, que seria al que te conectases.

Mi consejo es que el usuario mediante un programa FTP como Filezilla suba a tu servidor el fichero, y que tu en el panel muestres un listado de los ficheros que esten en ese directorio donde se suben y permitas las operaciones necesarias (asignar titulo, asociarlo a un producto, etc). Via web solo tienes el HTTP (http://es.php.net/manual/en/features.file-upload.php)
  #5 (permalink)  
Antiguo 18/06/2008, 02:53
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problemas con funciones FTP

Cita:
Iniciado por DarkJ Ver Mensaje
Lo que te digo es que php se ejecuta en el servidor web, y para acceder a un ordenador que esta en el ordenador del visitante, este ultimo deberia tener instalado un servidor FTP, que seria al que te conectases.

Mi consejo es que el usuario mediante un programa FTP como Filezilla suba a tu servidor el fichero, y que tu en el panel muestres un listado de los ficheros que esten en ese directorio donde se suben y permitas las operaciones necesarias (asignar titulo, asociarlo a un producto, etc). Via web solo tienes el HTTP (http://es.php.net/manual/en/features.file-upload.php)
Ok pues lo plantearé asi, me podrias explicar mas o menos como lo asociarias a un producto?, muchas gracias
  #6 (permalink)  
Antiguo 18/06/2008, 04:56
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problemas con funciones FTP

Vamos a ver porque leyendo más tranquilo creo que no me entero de lo que tu dices, yo desde mi ordenador, accediendo a un administrador en php, no puedo subir archivos desde el ordenador, en mi caso un archivo de audio grande, al servidor?

Es que he estado leyendo el ftp_put y viendo ejempos en hotscritps crean clientes ftp programados en php.

Si me lo puedes aclarar porque la verdad que tengo un follon en la cabeza que pa que :D

Muchisimas gracias de nuevo
  #7 (permalink)  
Antiguo 18/06/2008, 05:45
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Problemas con funciones FTP

Servidor Web es donde esta tu PHP. Las funciones FTP de PHP son para conectarse a servidores FTP. Si tu ordenador A (desde donde te conectas a tu panel) no tiene un servidor FTP, es imposible que tu servidor Web se conecte mediante FTP a tu ordenador A.
  #8 (permalink)  
Antiguo 19/06/2008, 02:47
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problemas con funciones FTP

Cita:
Iniciado por DarkJ Ver Mensaje
Servidor Web es donde esta tu PHP. Las funciones FTP de PHP son para conectarse a servidores FTP. Si tu ordenador A (desde donde te conectas a tu panel) no tiene un servidor FTP, es imposible que tu servidor Web se conecte mediante FTP a tu ordenador A.

Ok ahora si me he enterado, ultima pregunta: si el ftp_connect y ftp_login conecta no quiere decir que haya conectado y que pueda subir?

Muchas gracias
  #9 (permalink)  
Antiguo 19/06/2008, 04:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Problemas con funciones FTP

Si, si no hay fallo de conexion se puede subir.

Pero el tema esta en que ordenadores estas conectando. El servidor web donde se ejecuta el PHP es el cliente, y se tiene que conectar a un servidor. Por ejemplo, en tu codigo te conectas por FTP al servidor localhost, estas conectando el servidor web con el servidor FTP localhost, que son el mismo.

Ejemplo con nombre:

servidorA.com es donde tienes subido el codigo PHP y donde ejecutas el script
servidorB.com es un servidor FTP alojado en otra empresa

con $conn_id=ftp_connect("servidorB.com"); con un login de servidorB.com podras subir y bajar ficheros entre servidorA.com y servidorB.com
  #10 (permalink)  
Antiguo 19/06/2008, 04:46
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problemas con funciones FTP

Cita:
Iniciado por DarkJ Ver Mensaje
Si, si no hay fallo de conexion se puede subir.

Pero el tema esta en que ordenadores estas conectando. El servidor web donde se ejecuta el PHP es el cliente, y se tiene que conectar a un servidor. Por ejemplo, en tu codigo te conectas por FTP al servidor localhost, estas conectando el servidor web con el servidor FTP localhost, que son el mismo.

Ejemplo con nombre:

servidorA.com es donde tienes subido el codigo PHP y donde ejecutas el script
servidorB.com es un servidor FTP alojado en otra empresa

con $conn_id=ftp_connect("servidorB.com"); con un login de servidorB.com podras subir y bajar ficheros entre servidorA.com y servidorB.com
ok pues entonces tienes razon lo estoy conectando todo en el mismo, muchas gracias por la ayuda
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 04:09.