Foros del Web » Programando para Internet » PHP »

Upload PHP-FTP usando formulario: ¿Cómo hacerlo?

Estas en el tema de Upload PHP-FTP usando formulario: ¿Cómo hacerlo? en el foro de PHP en Foros del Web. Hola.. me gustaria saber si es posible, y como, hacer que utilizando un formulario y sin la función copy, se pueda subir un archivo via ...
  #1 (permalink)  
Antiguo 20/05/2005, 12:18
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 1 mes
Puntos: 0
Upload PHP-FTP usando formulario: ¿Cómo hacerlo?

Hola.. me gustaria saber si es posible, y como, hacer que utilizando un formulario y sin la función copy, se pueda subir un archivo via ftp... donde trabajo, por cuestiones de seguridad se decidio bloquear las subidas de archivos con copy y move upload, alguien tiene algun ejemplo sencillo que suba a servidor ftp?

Hipolito Delgado
  #2 (permalink)  
Antiguo 20/05/2005, 16:33
 
Fecha de Ingreso: agosto-2004
Mensajes: 95
Antigüedad: 19 años, 7 meses
Puntos: 2
Formulario.html

Código HTML:
<form action="subir.php" method="post" enctype="multipart/form-data"> 
<input name="file" type="file">
<input type="submit" value="Enviar"></td></tr>
</form> 
Subir.php

Código PHP:
<?
$local 
=  $_FILES['file']['tmp_name'];

//El tamaño por si lo necesitas
$tamano $_FILES['file']['size'];

//nombre del archivo escogido para subir ..el cual vamos a utlizarlo para nombrar el archivo que quedará en el server FTP
$remoto $_FILES['file']['name'];

$id_ftp ftp_connect("Host",21);
ftp_login ($id_ftp"usuario""password");
ftp_pasv ($id_ftpfalse);
//carpeta donde vamos a deja el archivo
ftp_chdir ($id_ftp"/home/misitio/public_html/upload/archivos");
if (
ftp_put($id_ftp,$remoto,$local,FTP_BINARY)){
echo 
"Subio OK";
}else{echo 
"No subio";}

ftp_quit($id_ftp); 
?>
__________________
Marco de Arica (Chile)
  #3 (permalink)  
Antiguo 24/05/2005, 06:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 1 mes
Puntos: 0
excelente!! me funcionó 5 estrellas!
  #4 (permalink)  
Antiguo 24/05/2005, 06:13
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Hola muy interesante, como se puede hacer para comprobar la extensión de los archivos, es decir para solo admitir ciertas extensiones??

saludos
  #5 (permalink)  
Antiguo 24/05/2005, 09:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al igual que para el primer paso del Upload (la parte de subida de tu archivo desde el cliente al servidor) obtienes sus propiedades por el array $_FILES .. en:

$_FILES['file']['type'] tendrías el formato MIME del archivo.

Pregunta:
¿Por qué no usan la función move_uploaded_file() para tomar el archivo y moverlo a su destino definitivo? ..

Creo que es más peligroso dejar acceder a cualquier función de PHP acceder a la ruta que indica: upload_tmp_dir que restringir el acceso vía open_base_dir (php.ini) a cualquier función tipo copy() .. fopen() fuera de donde definas (teóricamente tu sitio o donde cae tu aplicación en ese servidor) y sólo usar move_uploaded_file() que es la única función que tiene atribuciones para "salir" fuera de lo que pueda determinar open_base_dir como restricción y seguridad.

Además .. si el serivdor que toma el archivo (lo recibe) y donde ha de quedar el archivo finalmente es el mismo servidor te ahorras el tiempo de negociación de la autentificación de tu script PHP en ese servidor FTP.

Creo que deberían evaluar mejor el tema .. Recuerda también que "copy()" ni "move_uploaded_file()" ... "sube" el archivo .. el archivo sube desde el cliente al servidor por HTTP (en $_FILES lo obtienes como ya ves) y de ahí (de donde PHP lo sube temporalmente: upload_tmp_dir) tu veras que haces: lo mueves a su destino definitivo, lo lees para procesarlo (ej: para llevarlo a un campo en modo binario a una BD ..) etc ..

Un saludo,
  #6 (permalink)  
Antiguo 21/07/2008, 22:07
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Upload PHP-FTP usando formulario: ¿Cómo hacerlo?

Marco no entiendo como se hace esto, sabes probe desde un dominio a otro copiando el codigo que pusistes aca pero siempre me sale el siguiente error

Warning: ftp_chdir() [function.ftp-chdir]: Can't change directory to images: No such file or directory in /home/clickchi/public_html/mcm/administracion/pag_informativa_edita_ok.php on line 35

el tema es que de un dominio xxxx.xl estoy hacdiendo un formulario que sube los archivos al otro dominio yyyyy.cl a una carpta donde estan las imagenes

la carpeta esta con permisos 777

asi todo no puedo subir el archivo

ojala me puedas ayudar


gracias



Cita:
Iniciado por marcomartinez Ver Mensaje
Formulario.html

Código HTML:
<form action="subir.php" method="post" enctype="multipart/form-data"> 
<input name="file" type="file">
<input type="submit" value="Enviar"></td></tr>
</form> 
Subir.php

Código PHP:
<?
$local 
=  $_FILES['file']['tmp_name'];

//El tamaño por si lo necesitas
$tamano $_FILES['file']['size'];

//nombre del archivo escogido para subir ..el cual vamos a utlizarlo para nombrar el archivo que quedará en el server FTP
$remoto $_FILES['file']['name'];

$id_ftp ftp_connect("Host",21);
ftp_login ($id_ftp"usuario""password");
ftp_pasv ($id_ftpfalse);
//carpeta donde vamos a deja el archivo
ftp_chdir ($id_ftp"/home/misitio/public_html/upload/archivos");
if (
ftp_put($id_ftp,$remoto,$local,FTP_BINARY)){
echo 
"Subio OK";
}else{echo 
"No subio";}

ftp_quit($id_ftp); 
?>
  #7 (permalink)  
Antiguo 27/07/2008, 08:45
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Upload PHP-FTP usando formulario: ¿Cómo hacerlo?

Hola, me gustarìa saber que limitaciones de tamaño hay en el upload.
Si necesitara subir 60mb eso es viable?
__________________
Holden-@r
http://www.hvaldez.com.ar
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:46.