[Php-avanzado] maniobra ftp

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Sab Jun 6 12:03:21 ART 2009


Hola Carolina,

El sáb, 06-06-2009 a las 03:13 -0300, Silverzero escribió:
> Hola  a todos:
> 
> Estuve haciendo los ejercicios de upload y a pesar de que funciona
> todo, no logro darle en la tecla con la maniobra ftp...Alguien me
> puede dar una ayudiña?

	Me decís que para ulloads múltiples sin usar la maniobra FTP este
código funciona?
	Le veo varias cosas raras...

> Esto es lo que hice para un upload multiple:
> 
> if(is_uploaded_file($_FILES['archivos']['tmp_name'])){ // si el
> archivo se cargó
>                         
>                         if (isset ($_FILES['archivos'])) {

	$_FILES['archivos'] te va a dar verdadero más veces de lo que te
gustaría. Por ejemplo si el archivo no sube porque se pasó del tamaño,
esto da verdadero igual.

>                         //obtenemos la cantidad de elementos que tiene
> el arreglo archivos
>                         $tot = count($_FILES['archivos']['name']);

	Sin ver el HTML no estoy seguro, pero esto no debería ser
count($_FILES) ??? De hecho $_FILES['archivos']['name'] es un string con
el nombre del archivo en la PC origen, así que hacer count() de esto no
te dice nada...

>                         for ($i = 0; $i < $tot; $i++){

	Acá hacés un for para recorrer un vector... habiendo foreach...
           
>                             //muevo el archivo con el nombre original
> 
> move_uploaded_file($_FILES['archivos']['tmp_name'][$i],"archivos_upload/".$_FILES['archivos']['name'][$i]);

	Qué es la [$i] al final???
	Es como si no te quedara clara la forma de la matriz $_FILES... hacele
un print_r($_FILES) y fijate.
	

>                             //maniobra ftp------------->yo queria
> hacerla acá por cada archivo que se mueve

	Tiene sentido. Lo que no tiene mucho sentido es hacer también el
move_uploaded_file(). Si vas a dejar el archivo en el mismo lugar, una
copia por FTP o no fallará porque el archivo será el mismo.
	Vale más la pena copiar por FTP desde $_FILES['archivos']['tmp_name']
al lugar definitivo.


>                             $connect=ftp_connect($ip);
>                             $login=ftp_login($connect,$user,$pass);
>                         
>                             if((!$connect) || (!login)){
>                                 print ("La conexión ha fallado.");
> 
>                                 }else{ 
> 
> // acá es donde me pierdo...tengo que usar ftp_get o ftp_put, o los
> dos? la idea no es agarrar el archivo que fue movido, copiarlo y
> sobreescribir la   ruta para que quede con los permisos del usuario?

	Los dos seguro que no.
	La desición de usar ftp_get o ftp_put depende de cómo estés usando esto
y del destino de la copia.
	Tu script PHP es un usuario. Cómo ve ese usuario al disco? 
	Por otra parte, la conexión la hace un usuario concreto. Cómo ve ese
usuario al disco?

	Después ftp_put es para "subir" un archivo al FTP; ftp_get es para
"bajar" un archivo del FTP. 
	En general, lo que queremos hacer es "subir" un archivo para ser los
dueños, que es el objetivo de la maniobra.
        
>                                     ftp_put($connect,$ruta,
> $ruta,FTP_BINARY);
>                                     ftp_close($connect);
>                                     }
>                             }
> 
> Gracias y saludos.

	Por nada!

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado