[Php-avanzado] ruta ftp

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mar Mayo 7 18:44:38 ART 2013


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



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