[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