[Php-avanzado] ruta ftp

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mar Mayo 7 23:57:35 ART 2013


Traduzco: te dice que los directorios . y .. no son archivos
convencionales y no se pueden bajar

PD: no se pone en el directorio que querés, porque no existe ese
directorio, porque nunca lo creás.


El mar, 07-05-2013 a las 19:39 -0700, Damián Colledani escribió:
> Bien. Corregí y me descarga las fotos en el directorio donde tengo el
> script, no donde le digo, además me tira estos errores y no entiendo
> Warning: ftp_get() [function.ftp-get]: I can only retrieve regular
> files in C:\wamp\www\vortex\formulario-descarga-archivos.php on
> line 54
> 
> Warning: ftp_get() [function.ftp-get]: Can't
> open /public_html/galeria/..: Operation not permitted in C:\wamp\www
> \vortex\formulario-descarga-archivos.php on line54
> Me traducís?
> Gracias
> --- El mar 7-may-13, Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar> escribió:
>         
>         De: Leonardo Tadei - Pegasus Tech Supply
>         <leonardot en pegasusnet.com.ar>
>         Asunto: Re: [Php-avanzado] ruta ftp
>         Para: "Lista del curso de PHP Avanzado"
>         <php-avanzado en pato2.fi.mdp.edu.ar>
>         Fecha: martes, 7 de mayo de 2013, 22:44
>         
>         Hola Damián,
>         
>             pero ese es justamente el error de concepto que te decía:
>         no se puede
>         hacer chmod() a un directorio remoto. Esta función solo
>         funciona en un
>         archivo o directorio local.
>         
>         
>         
>         El mar, 07-05-2013 a las 13:26 -0700, Damián Colledani
>         escribió:
>         > perdon por el mal uso de variables, lo del cambio de
>         permisos es
>         > porque es un directorio remoto y no me deja hacer la
>         descarga
>         > igualmente me pone el error
>         > Warning: chmod() [function.chmod]: No such file or directory
>         in C:
>         > \wamp\www\vortex\formulario-descarga-archivos.php on line 4
>         > 
>         > 
>         > y con el get me devuelve
>         > Warning: ftp_get() [function.ftp-get]: I can only retrieve
>         regular
>         > files in C:\wamp\www\vortex\formulario-descarga-archivos.php
>         on
>         > line 54
>         > este no entiendo porque me lo devuelve
>         > 
>         > --- El mar 7-may-13, Leonardo Tadei - Pegasus Tech Supply
>         > <leonardot en pegasusnet.com.ar> escribió:
>         >         
>         >         De: Leonardo Tadei - Pegasus Tech Supply
>         >         <leonardot en pegasusnet.com.ar>
>         >         Asunto: Re: [Php-avanzado] ruta ftp
>         >         Para: "Lista del curso de PHP Avanzado"
>         >         <php-avanzado en pato2.fi.mdp.edu.ar>
>         >         Fecha: martes, 7 de mayo de 2013, 20:57
>         >         
>         >         Damián,
>         >         
>         >             si es remota, entonces tenés un error de
>         concepto, porque
>         >         el comando
>         >         chmod() se puede aplicar solo a archivos locales, y
>         si vos
>         >         estás
>         >         empezando la ruta con /public_html/ la barra implica
>         que es la
>         >         raíz, y
>         >         ves esa raíz solo si estás conectado por FTP.
>         >         
>         >             El directorio al que querés cambiarle los
>         permisos está
>         >         funcionando en
>         >         una PC con MS Windows, en las que no hay permisos...
>         >         
>         >             $newdir nunca es creado en local, así que debe
>         ser un
>         >         directorio que ya
>         >         existe, pero si ya existe, el nombre de la variable
>         es, al
>         >         menos,
>         >         confuso.
>         >         
>         >             Ojalá te sirvan estos tips para seguir adelante
>         con esto!
>         >         
>         >         
>         >         
>         >         El mar, 07-05-2013 a las 12:31 -0700, Damián
>         Colledani
>         >         escribió:
>         >         > remota
>         >         > 
>         >         > --- El mar 7-may-13, Leonardo Tadei - Pegasus Tech
>         Supply
>         >         > <leonardot en pegasusnet.com.ar> escribió:
>         >         >         
>         >         >         De: Leonardo Tadei - Pegasus Tech Supply
>         >         >         <leonardot en pegasusnet.com.ar>
>         >         >         Asunto: Re: [Php-avanzado] ruta ftp
>         >         >         Para: "Lista del curso de PHP Avanzado"
>         >         >         <php-avanzado en pato2.fi.mdp.edu.ar>
>         >         >         Fecha: martes, 7 de mayo de 2013, 20:28
>         >         >         
>         >         >         Esto es porque las rutas vistas desde el
>         FTP, no
>         >         tienen la
>         >         >         misma raíz
>         >         >         que vistas por un script PHP, que puede
>         ver todo el
>         >         disco.
>         >         >         
>         >         >         
>         >         >         PD: perdón, pero sigo sin entender qué
>         tiee que ver
>         >         una
>         >         >         conexión FTP en
>         >         >         todo esto... sin ese contexto, parece que
>         estás
>         >         haciendo las
>         >         >         cosas o
>         >         >         innecesariamente complicadas o con errores
>         de
>         >         concepto.
>         >         >         El script se conecta al propio servidor
>         (localhost)
>         >         o se
>         >         >         conecta a una
>         >         >         máquina remota?
>         >         >         
>         >         >         
>         >         >         El mar, 07-05-2013 a las 12:13 -0700,
>         Damián
>         >         Colledani
>         >         >         escribió:
>         >         >         > Si, entendí ahora lo modifique pero me
>         tira
>         >         errores en chmod
>         >         >         me dice
>         >         >         > que no existe directorio, sin embargo me
>         muestra
>         >         los
>         >         >         archivos que
>         >         >         > quiero bajar cuando me tira el error de
>         ftp_get()
>         >         >         > ahi va
>         >         >         > $dir_local=
>         mkdir("c:/fotos_".date('d-m-Y'),0777);
>         >         >         > $dir=$_POST['carpeta'];
>         >         >         > $nombre_usuario_ftp=$_POST["usuario"];
>         >         >         > $contrasenya_ftp=$_POST["clave"];
>         >         >         > $servidor_ftp=$_POST["servidor"];
>         >         >         > $id_con = ftp_connect($servidor_ftp,21)
>         or die("No
>         >         ha sido
>         >         >         posible
>         >         >         > conectarse a $servidor_ftp");
>         >         >         > ftp_login($id_con,$nombre_usuario_ftp,
>         >         >         $contrasenya_ftp); //Se loguea
>         >         >         > al Servidor FTP
>         >         >         > ftp_pasv($id_con,MODO); //Establece el
>         modo de
>         >         conexión
>         >         >         > $newdir = "/public_html/".$dir."/";
>         >         >         > chmod($newdir,777);
>         >         >         > $list = ftp_nlist($id_con, $newdir);
>         >         >         > $cant=count($list);
>         >         >         > 
>         >         >         > for($i=0;$i<$cant;$i++ ){
>         >         >         > 
>         >         >         > $file = ftp_get($id_con,
>         $dir_local."/".$list[$i],
>         >         >         $newdir.$list[$i],
>         >         >         > FTP_BINARY);
>         >         >         > }
>         >         >         > if ($cant == 0){
>         >         >         > echo "El directorio no existe en el
>         servidor";
>         >         >         > }
>         >         >         > ///el error es 
>         >         >         > Warning: chmod() [function.chmod]: No
>         such file or
>         >         directory
>         >         >         in C:
>         >         >         > \wamp\www\vortex
>         \formulario-descarga-archivos.php
>         >         on line 49
>         >         >         > 
>         >         >         > Warning: ftp_get() [function.ftp-get]: I
>         can only
>         >         retrieve
>         >         >         regular
>         >         >         > files in C:\wamp\www\vortex
>         >         \formulario-descarga-archivos.php
>         >         >         on
>         >         >         > line 55
>         >         >         > 
>         >         >         > Warning: ftp_get(1/..)
>         [function.ftp-get]: failed
>         >         to open
>         >         >         stream:
>         >         >         > Permission denied in C:\wamp\www\vortex
>         >         >         > \formulario-descarga-archivos.php on
>         line 55
>         >         >         > 
>         >         >         > Warning: ftp_get() [function.ftp-get]:
>         Error
>         >         opening 1/.. in
>         >         >         C:\wamp
>         >         >         > \www\vortex
>         \formulario-descarga-archivos.php on
>         >         line 55
>         >         >         > 
>         >         >         > Warning: ftp_get(1/Foto0522.jpg)
>         >         [function.ftp-get]: failed
>         >         >         to open
>         >         >         > stream: No such file or directory in C:
>         \wamp\www
>         >         \vortex
>         >         >         > \formulario-descarga-archivos.phpon line
>         55
>         >         >         > 
>         >         >         > etc por cada archivo
>         >         >         > Agradezco la ayuda
>         >         >         > 
>         >         >         > --- El mar 7-may-13, Leonardo Tadei -
>         Pegasus Tech
>         >         Supply
>         >         >         > <leonardot en pegasusnet.com.ar> escribió:
>         >         >         >         
>         >         >         >         De: Leonardo Tadei - Pegasus
>         Tech Supply
>         >         >         >         <leonardot en pegasusnet.com.ar>
>         >         >         >         Asunto: Re: [Php-avanzado] ruta
>         ftp
>         >         >         >         Para: "Lista del curso de PHP
>         Avanzado"
>         >         >         >
>            <php-avanzado en pato2.fi.mdp.edu.ar>
>         >         >         >         Fecha: martes, 7 de mayo de
>         2013, 14:40
>         >         >         >         
>         >         >         >         Hola Damián,
>         >         >         >         
>         >         >         >             estás empezando la ruta
>         con /
>         >         en /public_html/
>         >         >         con lo que
>         >         >         >         le estás
>         >         >         >         diciendo que public_html están
>         en la raíz
>         >         del disco,
>         >         >         y lo más
>         >         >         >         habitual
>         >         >         >         es que esté en /home/usuario
>         >         >         >         
>         >         >         >             Lo mejor para estos casos es
>         entrar
>         >         por FTP, ver
>         >         >         qué
>         >         >         >         nombres tienen los
>         >         >         >         directorios, y luego escribir
>         rutas
>         >         relativas (no
>         >         >         absolutas)
>         >         >         >         en dónde
>         >         >         >         trabajar.
>         >         >         >         
>         >         >         >             Sin embargo, acá no hacés
>         ningún
>         >         upload ni
>         >         >         download por
>         >         >         >         FTP, con lo que
>         >         >         >         te conviene usar directamente
>         las
>         >         funciones de
>         >         >         manejo de disco
>         >         >         >         y
>         >         >         >         archivos, ya que no le estás
>         dando ningún
>         >         uso al
>         >         >         FTP.
>         >         >         >         
>         >         >         >             Para terminar, salvo que
>         estés usando
>         >         alguna
>         >         >         versión muy
>         >         >         >         vieja de PHP,
>         >         >         >         es más simple la función
>         scandir() que te
>         >         devuelve
>         >         >         un vector,
>         >         >         >         que
>         >         >         >         trabajar con opendir() que te
>         obliga luego
>         >         a
>         >         >         recorrer el
>         >         >         >         directorio.
>         >         >         >         
>         >         >         >             Salu2!
>         >         >         >         
>         >         >         >         
>         >         >         >         El mar, 07-05-2013 a las 06:28
>         -0700,
>         >         Damián
>         >         >         Colledani
>         >         >         >         escribió:
>         >         >         >         > Alguien me puede decir como
>         saber la
>         >         ruta a los
>         >         >         archivos que
>         >         >         >         debo
>         >         >         >         > descargar via ftp?
>         >         >         >         > Teoricamente estan
>         en /public_html/ pero
>         >         el
>         >         >         directorio que
>         >         >         >         consulto
>         >         >         >         > con is_dir me dice que no
>         existe
>         >         >         >         > Mando todo el script por si
>         acaso
>         >         Gracias
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         > $nombre_usuario_ftp=
>         $_POST["usuario"];
>         >         >         >         > $contrasenya_ftp=
>         $_POST["clave"];
>         >         >         >         > $servidor_ftp=
>         $_POST["servidor"];
>         >         >         >         > $id_con =
>         ftp_connect($servidor_ftp,21)
>         >         or die("No
>         >         >         ha sido
>         >         >         >         posible
>         >         >         >         > conectarse a $servidor_ftp");
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         >
>         >         $carpeta="/public_html/".$_POST["carpeta"]."/";
>         >         >         >         > if (ftp_login($id_con,
>         >         $nombre_usuario_ftp,
>         >         >         >         $contrasenya_ftp)){
>         >         >         >         > echo "Conectado en
>         $nombre_usuario_ftp@
>         >         >         $servidor_ftp "; 
>         >         >         >         > 
>         >         >         >         > if (is_dir($carpeta)==true)
>         >         >         >         > { 
>         >         >         >         > echo "<br> Existe carpeta";
>         >         >         >         >
>         $abredir=opendir($carpeta);   //abro el
>         >         directorio
>         >         >         y recorro
>         >         >         >         el
>         >         >         >         > directorio buscando los
>         archivo
>         >         >         >         > echo "<br> Abrio carpeta";
>         >         >         >         > while (false!
>         >         >         ==($nombre_archivo=readdir($abredir)))
>         >         >         >         > {
>         >         >         >         > if (($nombre_archivo !== ".")
>         &&
>         >         >         ($nombre_archivo !== ".."))
>         >         >         >         >   //valido que no sean . ni ..
>         >         >         >         > {   
>         >         >         >         > //if($aux==$nombre_archivo)
>         >         >         >         > //{
>         >         >         >         > //return $aux;
>         >         >         >         >
>         DescargarArchivo($nombre_archivo);
>         >         >         >         > 
>         >         >         >         > //}
>         >         >         >         > }
>         >         >         >         > }
>         >         >         >         > }else{
>         >         >         >         > echo "La Carpeta no Existe";
>         >         >         >         > }
>         >         >         >         > }
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         > function
>         DescargarArchivo($fichero){
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         > $basefichero =
>         basename($fichero);
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         > header( "Content-Type:
>         >         application/octet-stream");
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         > header( "Content-Length:
>         >         ".filesize($fichero));
>         >         >         >         > 
>         >         >         >         > 
>         >         >         >         >
>         >         >         >
>         >         >
>         >
>            header( "Content-Disposition:attachment;filename=".$basefichero);
>         >         >         >         > readfile($fichero);
>         >         >         >         > }
>         >         >         >         > }
>         >         >         >         >
>         >         _______________________________________________
>         >         >         >         > Php-avanzado mailing list
>         >         >         >         >
>         Php-avanzado en pato2.fi.mdp.edu.ar
>         >         >         >         >
>         >         >         >
>         >         >
>         >
>            http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         >         >         >         
>         >         >         >         -- 
>         >         >         >         
>         >         >         >         Leonardo Tadei
>         >         >         >         leonardot en pegasusnet.com.ar
>         >         >         >         Pegasus Tech Supply
>         >         >         >         Tel: (+54)(+223) 471-2880
>         >         >         >         La Salle 1131 - Mar del Plata -
>         Argentina
>         >         >         >         http://www.pegasusnet.com.ar
>         >         >         >         http://www.grupopegasus.com
>         >         >         >         Firma pública:
>         >         >         >
>         >         >
>         >
>            http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>         >         >         >         
>         >         >         >
>         >            _______________________________________________
>         >         >         >         Php-avanzado mailing list
>         >         >         >         Php-avanzado en pato2.fi.mdp.edu.ar
>         >         >         >
>         >         >
>         >
>            http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         >         >         >         
>         >         >         >
>         _______________________________________________
>         >         >         > Php-avanzado mailing list
>         >         >         > Php-avanzado en pato2.fi.mdp.edu.ar
>         >         >         >
>         >         >
>         >
>         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         >         >         
>         >         >         -- 
>         >         >         
>         >         >         Leonardo Tadei
>         >         >         leonardot en pegasusnet.com.ar
>         >         >         Pegasus Tech Supply
>         >         >         Tel: (+54)(+223) 471-2880
>         >         >         La Salle 1131 - Mar del Plata - Argentina
>         >         >         http://www.pegasusnet.com.ar
>         >         >         http://www.grupopegasus.com
>         >         >         Firma pública:
>         >         >
>         >
>         http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>         >         >         
>         >         >
>            _______________________________________________
>         >         >         Php-avanzado mailing list
>         >         >         Php-avanzado en pato2.fi.mdp.edu.ar
>         >         >
>         >
>         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         >         >         
>         >         > _______________________________________________
>         >         > Php-avanzado mailing list
>         >         > Php-avanzado en pato2.fi.mdp.edu.ar
>         >         >
>         >
>            http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         >         
>         >         -- 
>         >         Leonardo Tadei
>         >         leonardot en pegasusnet.com.ar
>         >         Web: http://leonardo.tadei.com.ar
>         >         Firma pública:
>         >
>            http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>         >         
>         >         _______________________________________________
>         >         Php-avanzado mailing list
>         >         Php-avanzado en pato2.fi.mdp.edu.ar
>         >
>            http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         >         
>         > _______________________________________________
>         > Php-avanzado mailing list
>         > Php-avanzado en pato2.fi.mdp.edu.ar
>         >
>         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         
>         -- 
>         
>         Leonardo Tadei
>         leonardot en pegasusnet.com.ar
>         Pegasus Tech Supply
>         Tel: (+54)(+223) 471-2880
>         La Salle 1131 - Mar del Plata - Argentina
>         http://www.pegasusnet.com.ar
>         http://www.grupopegasus.com
>         Firma pública:
>         http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>         
>         _______________________________________________
>         Php-avanzado mailing list
>         Php-avanzado en pato2.fi.mdp.edu.ar
>         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>         
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado

-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar
http://www.grupopegasus.com
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



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