[Php-avanzado] ruta ftp

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


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



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