[Php-avanzado] ruta ftp
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Mar Mayo 7 16:28:15 ART 2013
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
Más información sobre la lista de distribución Php-avanzado