Foros del Web » Programando para Internet » PHP »

Problema al Subir archivo mediante FTP

Estas en el tema de Problema al Subir archivo mediante FTP en el foro de PHP en Foros del Web. Hola a todos. Estoy desarrollando una web en la existe una función para subir archivos a un servidor. Para ello lo voy a realizar mediante ...
  #1 (permalink)  
Antiguo 12/12/2008, 06:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Problema al Subir archivo mediante FTP

Hola a todos.
Estoy desarrollando una web en la existe una función para subir archivos a un servidor. Para ello lo voy a realizar mediante ftp.
Este es el código de mi formulario:

<form name="enviador" method="post" action="recibe.php" enctype="multipart/form-data"><input type="hidden" name="MAX_FILE_SIZE" value="10000">Archivo: <input type="file" name="archivo"><input type="submit"></form>

Y este es el código de mi archivo recibe.php que gestiona la subida del archivo.

<?php
// Primero creamos un ID de conexión a nuestro servidor
$cid = ftp_connect('localhost');
// Luego creamos un login al mismo con nuestro usuario y contraseña
$resultado = ftp_login($cid, "admin","pass");
// Comprobamos que se creo el Id de conexión y se pudo hacer el login
if ((!$cid) || (!$resultado)) {

echo "Fallo en la conexión";

die;
} else {
echo "Conectado.";
}
// Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al
//servidor que seremos nosotros quienes comenzaremos la transmisión de datos.
ftp_pasv ($cid, true) ;
echo "<br> Cambio a modo pasivo<br />";
// Nos cambiamos al directorio, donde queremos subir los archivos, si se van a subir a la raíz
// esta por demás decir que este paso no es necesario. En mi caso uso un directorio llamado boca
ftp_chdir($cid, "ArchivosFTP");
echo "Cambiado al directorio necesario";
// Tomamos el nombre del archivo a transmitir, pero en lugar de usar $_POST, usamos $_FILES que le indica a PHP
// Que estamos transmitiendo un archivo, esto es en realidad un matriz, el segundo argumento de la matriz, indica
// el nombre del archivo
$local = $_FILES["archivo"]["name"];
// Este es el nombre temporal del archivo mientras dura la transmisión
$remoto = $_FILES["archivo"]["tmp_name"];
// El tamaño del archivo
$tama = $_FILES["archivo"]["size"];
echo "<br />$local<br />";
echo "$remoto<br />";
echo "subiendo el archivo...<br />";
// Juntamos la ruta del servidor con el nombre real del archivo
$ruta = "/srv/www/htdocs/ArchivoFTP/" . $local;
// Verificamos si no hemos excedido el tamaño del archivo
if (!$tama<=$_POST["MAX_FILE_SIZE"]){
echo "Excede el tamaño del archivo...<br />"; }
else {
// Verificamos si ya se subio el archivo temporal
if (is_uploaded_file($remoto)){
// copiamos el archivo temporal, del directorio de temporales de nuestro servidor a la ruta que creamos
copy($remoto, $ruta);
}
// Sino se pudo subir el temporal
else {
echo "no se pudo subir el archivo " . $local;
}
}
echo "Ruta: " . $ruta;
//cerramos la conexión FTP
ftp_close($cid);
?>


Bueno, en teoría pensaba que funcionaría pero el resultado que obtengo en el navegador es:

Conectado.
Cambio a modo pasivo
Cambiado al directorio necesario
a.html
C:\WINDOWS\Temp\php36.tmp
subiendo el archivo...
Excede el tamaño del archivo...
Ruta: /srv/www/htdocs/ArchivoFTP/a.html

No entiendo porque sale eso si el archivo no ocupa ni 1Kb!!!

¿¿Alguien me puede ayudar??
Muchas gracias,
¿por cierto la ruta que debe de aparecer es esa? ¿La ruta no debería ser c:/inetpub/ftproot/?

Bye
  #2 (permalink)  
Antiguo 12/12/2008, 06:31
 
Fecha de Ingreso: abril-2008
Ubicación: bcn
Mensajes: 33
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

hola, para lo de la negacion yo creo que bastaria con que sacaras la negacion en la condicion del peso del archivo:
if ( $tama<=$_POST["MAX_FILE_SIZE"] )
{....
  #3 (permalink)  
Antiguo 12/12/2008, 09:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

Buff.. nada,
e quitado la negación y me sigue dando el mismo problema.
Vuelvo a copiar la respuesta devuelta:

Conectado.
Cambio a modo pasivo
Cambiado al directorio necesario
Agua.doc

subiendo el archivo...
Excede el tamaño del archivo...
Ruta: /srv/www/htdocs/ArchivoFTP/Agua.doc


En este caso ya no me sale ni la ruta del temporal.
  #4 (permalink)  
Antiguo 12/12/2008, 09:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema al Subir archivo mediante FTP

Bueno tu primer error es falla de conceptos, necesitas investigar bien correctamente que es PHP, y donde se ejecuta. También entender bien que es lo que pasa al tu enviar un archivo directamente y como es que funciona la extensión de FTP de PHP.

Cuando tu subes un archivo via un formulario este ya recide en el servidor donde esta PHP, por lo que no puedes copiarlo de la forma que quieres, la extensión FTP de PHP solamente sirve para enviar archivos entre servidores, de FTP a FTP, no de HTTP => FTP.

Tu problema de la validación es por el uso del campo Hidden, lo mejor es omitirlo y comprobar directamente usando $_FILES['campo']['size'].

Saludos.
  #5 (permalink)  
Antiguo 12/12/2008, 09:31
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Respuesta: Problema al Subir archivo mediante FTP

albertogarci86:
No solo la subida de un archivo puede estar sujeto a restricciones de tamaño, pero tambien el servidor de ftp que esta supuesto a recibir el archivo tiene algun archivo de configuracion donde debe aparecer alguna restriccion o mas bien configuracion en cuanto a tamaños de archivos; y no solo eso sino que los servidores de ftp tambien pueden ser configurados para recibir y limitar los tipos de archivo como .gif, .exe etc, etc.
Saludos
Y espero ayude
Franco
P.S. Revisa el archivo de conf. del FTP servidor.
  #6 (permalink)  
Antiguo 12/12/2008, 10:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

OK. De momento estoy como estaba.
¿Por qué es un error de concepto?
Solamente quiero subir un archivo a un servidor y que el archivo se seleccione mediante el formulario que he puesto en el codigo.

No sé como revisar los archivos de configuración de FTP.
¿Alguien podría darme una solución más concreta sobre por qué no me funciona el programa?
Gracias y un saludo
  #7 (permalink)  
Antiguo 12/12/2008, 10:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema al Subir archivo mediante FTP

Si solo quieres subir un archivo, porque no lees las FAQs? para eso están: http://www.forosdelweb.com/f18/faqs-...89/#post249389

Saludos.
  #8 (permalink)  
Antiguo 12/12/2008, 11:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

Ok GatorV muchas gracias.
Asi consigo subir archivos a mi carpeta wwwroot.
¿Ahora sabrías como puedo hacer para que en futuros accesos a la aplicación pueda ver los archivos que han sido subidos para poderles descargar?
Repito 1000 gracias
  #9 (permalink)  
Antiguo 12/12/2008, 12:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema al Subir archivo mediante FTP

Pues para listar los archivos puedes usar opendir(), readdir(), closedir(), buscalos en el Manual de PHP, y puedes ver en los aportes del foro, hay un aporte sobre un centro de descargar.

Por favor en un futuro busca, hay muchas cosas en el foro y asi te ahorras tiempo.

Saludos.
  #10 (permalink)  
Antiguo 14/12/2008, 19:15
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

OK.
El tema es que no quiero listarles en una pagina html, si no que quiero que un usuario que este trabajando con mi aplicación pueda acceder al archivo almacenado en el servidor y pueda descargarle.
Hay algun código para mostrar los archivos de una carpeta del servidor?
  #11 (permalink)  
Antiguo 14/12/2008, 21:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema al Subir archivo mediante FTP

Si ves la referencia en el Manual las funciones que te dije, esas son para listar los archivos en el servidor.

Saludos.
  #12 (permalink)  
Antiguo 16/12/2008, 03:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

He tenido un problemilla con el codigo que me pasaste para subir archivos.
He podido subir archivos al servidor de tipo .txt .html, ... de poco tamaño.
Hoy he probado a subir un archivo .pdf de 7 Mb pero no lo ha subido.
¿Por qué es esto?
  #13 (permalink)  
Antiguo 16/12/2008, 10:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema al Subir archivo mediante FTP

Revisa tu php.ini, tienes que checar las directivas upload_max_filesize, y post_maxsize.

Saludos.
  #14 (permalink)  
Antiguo 18/12/2008, 03:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

Acabo de modificar las directivas.
En ambas he puesto 20M.
Sin embargo e intentado subir un archivo .pdf de 6,73M y no ha sido enviado.
¿Cuál puede ser el problema?
  #15 (permalink)  
Antiguo 18/12/2008, 09:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema al Subir archivo mediante FTP

Imprime el valor de error de tu file para que veas ( $_FILES['tu_file']['error'] )

Saludos.
  #16 (permalink)  
Antiguo 18/12/2008, 10:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema al Subir archivo mediante FTP

Hola GatorV,
curiosamente esta tarde he vuelto a probarlo y ahora funciona!
Muchas gracias de todos modos
Saludos
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 21:30.