SlideShare a Scribd company logo
1 of 4
Download to read offline
Funciones FTP


Dos tipos de transferencias
                                      Requisitos del sistema
En la página anterior hemos
hablado de la manera de transferir       El uso de estas funciones requiere que PHP tenga activada la opción FTP (enabled), que
información entre el ordenador de     en nuestro caso está activada en la configuración por defecto, tal como puedes ver a través
un usuario y un servidor web.         de tu info.php, que tendrá un apartado idéntico al que observamos en la siguiente imagen.

Aquí trataremos algo –similar a
primera vista– un poco distinto. Es
el caso las transferencias –en los
dos sentidos– entre servidores
(un servidor HTTP y un servidor
FTP).                                    Esto en cuanto a PHP. Pero además de esta configuración será imprescindible disponer
                                      de un servidor FTP accesible y activo. En este tipo de transferencias intervienen dos
En la configuración descrita en la    servidores: el servidor HTTP (nuestro Apache) y el servidor FTP, cuyo procedimiento de
instalación del servidor FTP hemos    instalación y configuración hemos descrito en el apartado Servidor de FTP. Antes de poder
establecido que ambos servidores      utilizar las funciones que aquí describimos deberás tener instalado y activo el servidor FTP
tengan por root el mismo              que allí se describe.
directorio, pero no es la única
opción posible.                          Nos conviene recordar que en la configuración allí descrita el servidor se llama:
Es totalmente factible que uno de     localhost; y que hemos creado diferentes usuarios (con privilegios distintos) entre ellos
los servidores esté alojado en un     admin.
hosting de Londres y el otro en
Sydney, por poner un ejemplo de       Comprobación de login y conexión
lugares distantes.

Imaginemos que todo esto es            <?
cierto.                                # conexión con el servidor FTP
                                       if($x=@ftp_connect ("localhost",21)){
                                           echo "Conexión FTP activada<br>";
Transferencias FTP
                                       }else{
                                           echo "No se activo lo conexión FTP<br>";
Los dos primeros pasos para poder      }
utilizar las funciones FTP han de      # registro de usuario
ser: abrir la conexión y pasar el
                                       if(@ftp_login($x,"admin","admin")){
login. El último sería cerrar la
conexión.
                                           echo "El login y la password han sido aceptados";
                                       }else{
                                           echo "Error en login o password";
Abrir la conexión                      }
                                       #desconexión
$x=ftp_connect (host,pt)               ftp_quit($x);
                                       ?>
Esta función –en la que host es
una cadena con el nombre del
servidor FTP (no te olvides de
ponerlo entre comillas) y pt es el                                      ejemplo91.php
número del puerto a través del
cual se efectúa la conexión FTP–
abre una conexión con el servidor     Lista de contenidos del subdirectorio Apache
FTP.

Si se omite pt se asigna por           <?
defecto el valor 21 que es el          if($x=@ftp_connect ("localhost",21)){
puerto que se usa habitual- mente          echo "Conexión FTP activada<br>";
para acceder a este tipo de            }else{
servidores.                                echo "No se activo lo conexión FTP";
                                       }
La variable $x recogerá el
identificador de conexión que
                                       if(@ftp_login($x,"admin","admin")){
será utilizado por las demás               echo "El login y la password han sido aceptados<BR><BR>";
funciones.                             }else{
                                           echo "Error en login o password";
                                       }
«Loguearse»                            $lista=ftp_nlist($x,"/Apache");
                                       foreach($lista as $c=>$v){
Utilizaremos este término del argot        print "Indice: ".$c." Valor: ".$v."<br>";
informático –¿horrible, verdad?–       }
para referirnos al hecho de que el     print "<H1>Lista completa</H1>";
usuario se acredite como               $listacompleta=ftp_rawlist($x,"/");
autorizado en el servidor FTP.
                                       foreach($listacompleta as $c=>$v){
ftp_login($x,user,pass)                     print "Indice: ".$c." Valor: <H1>".$v."</H1>";
                                       }
Una vez abierta la conexión es         ftp_quit($x);
preciso comenzar la sesión             ?>
utilizando la función ftp_login con
los siguientes parámetros:
                                                                        ejemplo92.php
• $x, que es la variable en la que
se recogía el resultado de
ftp_connect.                            El resultado de la ejecución del script anterior podría producir una salida similar a esta:
• user, que es el nombre de
usuario.
• pass, que es la password del
usuario.

Esta función devuelve un valor
booleano que será 1 en el caso en
que se inicie la sesión
correctamente o NUL si no lo
hace.
Cerrar la conexión

Mediante la función:

ftp_quit($x)

se cierra la conexión abierta con
el identificador indicado en la
variable $x.


Gestión de directorios en
el servidor FTP

Una vez logueados y con la
conexión activa ya podremos
utilizar funciones FTP tales como:

ftp_cdup($x)                               Tal como puedes ver en la imagen, la cadena devuelta por la función ftp_rawlist tiene dos
                                        resultados distintos. La primera de las cadenas comienza por – lo cual indica que se trata de
Nos situa en el directorio raíz del
                                        un archivo y documento. En el segundo de los casos ese primer carácter es d e indica que
servidor FTP.
                                        se trata de un directorio.
ftp_pwd($x)                                Los nueve caracteres siguientes especifican los permisos de acceso a los ficheros y/o
                                        directorios. Se subdividen en tres bloques de igual tamaño que corresponden a los tres
Nos devuelve una cadena con el          niveles de usuarios habituales en sistemas Unix/Linux (propietario, grupo y resto de
nombre del directorio actual.           usuarios). Para nuestros propósitos bastará con que consideremos los privilegios del primer
                                        bloque, es decir los del propietario.
ftp_chdir($x, nuevodir)
                                           El primero carácter de cada bloque sólo puede ser r ó –. Si se trata de un fichero y está
Cambia el acceso actual al              marcado con r indica que se permite el acceso a él en modo lectura y si se trata de un
directorio especificado por la          directorio indica que está permitida la visualización de su contenido.
cadena nuevodir, en caso de que            El segundo de los caracteres (puede ser w ó –) indica, si se trata de un fichero, que está
exista.                                 permitida la modificación del fichero. Cuando se trata de un directorio significa que se
                                        pueden añadir o suprimir ficheros.
ftp_pwd($x)
                                           El tercero de los caracteres indicaría (x ó –) que el fichero -si se trata de un ejecutable-
Indica el nombre del directorio al      tiene permisos para ser ejecutado. Cuando se trata de un directorio, indica que pueden
que estamos accediendo en este          conocerse los atributos de los ficheros que contiene y que está permitido el acceso a él y a
momento.                                sus subdirectorios.
                                           El signo – significa la negación del atributo en todas las opciones.
ftp_mkdir($x, nomdir)                      El siguiente carácter, el número 1, está asociado con sistemas Linux/Unix e indicaría el
                                        número de vínculos duros contra el archivo, que es otra cosa que una forma de asignar
Crea un subdirectorio –en el
directorio actual– cuyo nombre es       nombres distintos a un mismo fichero.
el nombre indicado en la cadena            Los dos grupos siguientes -parece que no demasiado relevantes para nuestros
nomdir.                                 propósitos- ser los nombres del usuario y grupo al que pertenece.
                                           A continuación aparece el tamaño del archivo (cero si se trata de un directorio), la fecha
ftp_rmdir($x, nomdir)                   y hora de su creación y el nombre del archivo o directorio.
Borra el directorio especificado en
la cadena nomdir.                       Una miscelánea de las funciones FTP
Para que un directorio pueda ser
borrado se requiere que esté             <?
vacío y que esté incluido dentro         # Conexión con el el servidor ftp
del directorio actual.                   if(!$x=@ftp_connect ("localhost",21)){
                                              echo "No se activo lo conexión FTP";
                                                   exit();
Información sobre los
                                         }
contenidos de los
                                         # Identificación de usuario
directorios                              if(!@ftp_login($x,"admin","admin")){
del servidor FTP                              echo "Error en login o password";
                                                   exit();
ftp_nlist($x, nomdir)                    }
                                         /* comprobamos el nombre del directorio actual del servidor FTP
Devuelve una array escalar con los       que será el root correspondiente al usuario registrado */
nombres de los ficheros y
                                         echo "El directorio actual es: ",ftp_pwd($x),"<br>";
subdirectorios contenidos en el
directorio que se indica en nomdir.      /* intentamos cambiar a un subdirectorio indicando la ruta absoluta
                                         partiendo del directorio root del usuario actual.
Si se trata del directorio actual, el    En caso de error (ruta incorrecta o falta de permisos de accesos
parámetro nomdir puede                   nos daría un mensaje de error. Si el cambio tiene éxito nos indicaría
especificarse como una cadena            el nombre del nuevo directorio */
vacia ("").                              if(!@ftp_chdir($x,"/Apache/htdocs")){
                                              print "No tienes permisos de acceso a este directorio<br>";
Si la información se refiere a un
subdirectorio del actual bastará
                                              print "o la ruta es incorrecta.¡Comprueba los datos!<br>";
poner su nombre como valor del              }else{
parámetro nomdir.                             echo "Hemos cambiado al directorio: ",ftp_pwd($x),"<br>";
                                         }
En cualquier otro caso nomdir            # comprobamos el nombre del sistema operativo del servidor de FTP
contendrá la ruta completa.              echo "El S.O: del servidor FTP es: ",ftp_systype ($x),"<br>";
                                         /* obtenemos una matriz conteniendo la lista de ficheros y directorios
ftp_rawlist($x, nomdir)
                                           del subdirectorio "cursoPHP/images" del del directorio actual*/
Igual que la función anterior,           $lista=ftp_nlist($x,"cursoPHP/images");
ftp_rawlist también devuelve un          # escribimos la lista de ficheros contenidos en ese directorio
array escalar, pero en este caso         echo "Lista de ficheros contenidos en el subdirectorio cursoPHP/
con información ampliada.                images<br>";
                                               foreach ($lista as $valor){
Este array detalla, además del                        echo $valor,"<br>";
nombre del fichero, el tamaño, el
                                               }
tipo, la fecha de la última
modificación y los permisos de           # obtenemos una lista completa de los contenidos de ese subdirectorio
lectura y/o escritura.                   $lista=ftp_rawlist($x,"cursoPHP/images");
                                         # ordenamos el array que contiene la lista anterior
                                         sort($lista);
Transferencia de ficheros                echo "Contenidos del subdirectorio cursoPHP/images<br>";
                                         /* extrae los elementos del array eliminando los espacios repetidos
Las transferencias de ficheros
mediante la funcion preg_replace en la que s+ indica uno o más espacios
pueden realizarse en ambos                que serán sustituidos por uno solo (' ') */
sentidos.
                                       foreach($lista as $v){
Desde el servidor FTP                                $v=preg_replace('/s+/', ' ', $v);
hasta el servidor HTTP                           # imprimimos la cadena completa
                                                     print "<br><BR><BR>".$v."<br>";
Mediante la función:                             # convertimos la cadena en un array
                                                 # utilizando los espacios como separadores
ftp_get($x,nloc,nrem,modo)
                                                     $extrae=explode(" ",$v);
se transfiere un fichero desde un                # leemos los elementos del array y comentamos sus valores
servidor FTP hasta un directorio           foreach($extrae as $indice=>$cont){
del servidor HTTP en el que se está           switch($indice){
ejecutando PHP.                                  case 0:
                                                   print "El elemento de indice".$indice." es: ".$cont."<br>";
La cadena nloc contiene el nombre                  if (substr($cont,0,1)=="d"){
con el que el fichero será copiado
                                                       print "Es un directorio<br>";
en el directorio actual del servidor
                                                   }elseif(substr($cont,0,1)=="-"){
web y la cadena nrem contiene el
nombre (incluyendo el path) del                        print "Es un fichero<br>";
fichero que debe ser trasferido.                   }
                                                            if (substr($cont,1,1)=="r"){
El parámetro modo puede                                print "Tiene permisos de LECTURA<br>";
contener uno de estos valores:                     }elseif(substr($cont,1,1)=="-"){
FTP_ASCII o FTP_BINARY                                 print "No tiene permisos de LECTURA<br>";
                                                   }
Desde el servidor HTTP
hasta el servidor FTP                             if (substr($cont,2,1)=="w"){
                                                       print "Tiene permisos de ESCRITURA<br>";
Para realizar transferencias en                    }elseif(substr($cont,2,1)=="-"){
sentido contrario al anterior se                       print "No tiene permisos de ESCRITURA<br>";
utiliza la siguiente sintaxis:                     }
                                                 break;
ftp_put($x,nrem,nloc,modo)
                                                 case 4:
Se comporta de forma idéntica a la                    print "El tamaño de este fichero es: ".$cont." bytes<br>";
función anterior. La cadena nrem                 break;
sigue siendo el nombre y el path                 case 8:
del servidor FTP (donde vamos a                       print "El nombre del fichero o directorio es: ".$cont."<br>";
copiar el fichero) y nloc contiene               break;
el nombre del fichero en el                   }
servidor web (origen de la                 }
transferencia).                        }
                                       /* creamos un subdirectorio (del directorio actual)
Modificación de ficheros               con nombre experimento anteponiendo @# para evitar mensajes de error
en el servidor FTP                     en caso de que ya existiera */
                                       @ftp_mkdir($x,"experimento");
ftp_rename($x,nant,nnuevo)
                                       /* copiamos el fichero enol.jpg desde el directorio que se indica
                                           en el tercer parámetro (dentro servidor Apache)
Cambia el nombre del fichero nant          al directorio del servidor FTP que se indica
por el indicado en la cadena               en el segundo parámetro. Le ponemos por nombre lago_enol.jpg */
nnuevo.                                ftp_put($x, "/Apache/htdocs/experimento/lago_enol.jpg",
                                                                 "../cursoPHP/enol.jpg",FTP_BINARY);
ftp_delete($x,fichero)
                                       # obtenemos el tamaño del fichero transferido
Elimina -en el servidor FTP- el        echo "El tamaño de fichero tranferidos es: ",
fichero indicado en la cadena          ftp_size($x,"/Apache/htdocs/experimento/lago_enol.jpg")," bytes<br>";
fichero.                               /* escribimos la fecha de la última modificación del fichero transferido
                                         que coincidirá con la fecha y hora en la que se realizó la transferencia.
                                         Convertimos a formato de fecha convencional el tiempo UNIX que devuelve
Información sobre
                                         la función ftp_mdtm */
ficheros del en el servidor
                                       print "La fecha de modificacion del fichero es:";
FTP                                    print date("d-m-Y H:i:s",
                                              ftp_mdtm($x,"/Apache/htdocs/experimento/lago_enol.jpg"));
ftp_size($x,nomfile)                   # cambiamos el nombre del fichero lago_enol.jpg por lago_covadonga.jpg
                                       # en el servidor FTP
Devuelve el tamaño (en bytes) del
                                       @ftp_rename($x,"/Apache/htdocs/experimento/lago_enol.jpg",
fichero que se indica en la cadena
nomfile.
                                                         "/Apache/htdocs/experimento/lago_covadonga.jpg");
                                       /* creamos un enlace de descarga directa del fichero haciendo una llamada
ftp_mdtm($x,nomfile)                       mediante el protocolo ftp:// utilizando la sintaxis:
                                           ftp://usuario:contraseña@nombre del servidor
Esta función devuelve la fecha de          seguidos de la ruta (en el servidor FTP) y el nombre del fichero */
la última modificación del fichero     print "<BR><A href='ftp://admin:admin@localhost";
indicado en la cadena nomfile. Esta
                                       print "/Apache/htdocs/experimento/lago_covadonga.jpg'> Descargar</a>";
fecha se indica en tiempo Unix.
                                       /* transferimos al directorio del servidor Apache
                                           indicado en el segundo parámetro (con el nombre que se indica
    Ejercicio nº 31                        en el mismo) un fichero procedente del servidor FTP
                                           cuyo nombre y ruta se indican en el tercer parámetro*/
   Crea un formulario y un script      ftp_get($x,"../cursoPHP/liborio.jpg",
   mediante los cuales puedas                         "/Apache/htdocs/experimento/lago_covadonga.jpg",FTP_ASCII);
   subir al directorio                 /* comprimimos un fichero alojado en el servidor Apache
   Documentacion del servidor                   para transferirlo comprimido al servidor FTP */
   FTP un fichero cualquiera.                 #empezamos leyendo el fichero y guardándolo en una cadena
                                              $f1=fopen("../cursoPHP/cabina.jpg","r");
   Utiliza el nombre de usuario                      while (!feof($f1)) {
   y contraseña adecuados                                    $cadena .= fgets($f1,1024);
   para poder acceder al                               }
   directorio indicado y evita                fclose($f1);
   que quede copia del fichero               # comprimimos la cadena obtenida del fichero anterior
   en el servidor Apache.                            $c1=gzencode($cadena,3,FORCE_GZIP);
                                             # guardamos la cadena comprimida en un fichero
   Intenta mejorar el script para                    $f=fopen("cabina.jpg.gz","w");
   limitar el tamaño del archivo                     fwrite($f,$c1);
   y restringir la transferencia a                   fclose($f);
   formatos *.jpg ó *.gif.             /* al servidor el fichero comprimido. No es necesario indicar
                                          la ruta actual ya que ha sido creado en el mismo directorio
en el que se está ejecutando el script */
ftp_put($x, "/Apache/htdocs/experimento/cabina.jpg.gz",
               "cabina.jpg.gz",FTP_BINARY);
         #eliminamos el fichero comprimido del servidor Apache
 unlink("cabina.jpg.gz");
 # cerramos la conexión con el servidor ftp
ftp_quit($x);
# establecemos un enlace de descarga para el fichero comprimido
print "<BR><A href='ftp://admin:admin@localhost";
print "/Apache/htdocs/experimento/cabina.jpg.gz'>Descarga comprimido</a>";
?>



                           ejemplo93.php


         Anterior                  Indice                   Siguiente

More Related Content

What's hot

Quasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIXQuasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIXdegarden
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basicscyberleon95
 
Cap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a españolCap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a españolWilmer Lizunde Damiano
 
Comandos Básicos en GNU/Linux
Comandos Básicos en GNU/LinuxComandos Básicos en GNU/Linux
Comandos Básicos en GNU/LinuxJose Manuel Acosta
 
10 comandos basicos de linux
10 comandos basicos de linux10 comandos basicos de linux
10 comandos basicos de linuxDarwin Mx
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberiasJavier Muñoz
 
5 the linux filesystem
5 the linux filesystem5 the linux filesystem
5 the linux filesystemcyberleon95
 
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) Alberto Hdz
 
Instalar impresora en red manualmente win xp
Instalar impresora en red manualmente win xpInstalar impresora en red manualmente win xp
Instalar impresora en red manualmente win xpDaniel Moreno Soblechero
 
Tuberías (PIPES). EN GNU-LINUX-CENTOS ::: http://leymebamba.com
Tuberías (PIPES).  EN GNU-LINUX-CENTOS  ::: http://leymebamba.comTuberías (PIPES).  EN GNU-LINUX-CENTOS  ::: http://leymebamba.com
Tuberías (PIPES). EN GNU-LINUX-CENTOS ::: http://leymebamba.com{|::::::. ELDAVAN .:::::::|}
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linuxguest238e87
 

What's hot (18)

12 servidor ftp_windows2003
12 servidor ftp_windows200312 servidor ftp_windows2003
12 servidor ftp_windows2003
 
Quasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIXQuasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIX
 
Tarea 4
Tarea 4Tarea 4
Tarea 4
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basics
 
Cap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a españolCap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a español
 
Comandos Básicos en GNU/Linux
Comandos Básicos en GNU/LinuxComandos Básicos en GNU/Linux
Comandos Básicos en GNU/Linux
 
Comando ls
Comando lsComando ls
Comando ls
 
Tutorial0
Tutorial0Tutorial0
Tutorial0
 
Utilizacion de la interface de comandos de Linux
Utilizacion de la interface de comandos de LinuxUtilizacion de la interface de comandos de Linux
Utilizacion de la interface de comandos de Linux
 
10 comandos basicos de linux
10 comandos basicos de linux10 comandos basicos de linux
10 comandos basicos de linux
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberias
 
5 the linux filesystem
5 the linux filesystem5 the linux filesystem
5 the linux filesystem
 
Comandos
ComandosComandos
Comandos
 
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
 
Instalar impresora en red manualmente win xp
Instalar impresora en red manualmente win xpInstalar impresora en red manualmente win xp
Instalar impresora en red manualmente win xp
 
Tuberías (PIPES). EN GNU-LINUX-CENTOS ::: http://leymebamba.com
Tuberías (PIPES).  EN GNU-LINUX-CENTOS  ::: http://leymebamba.comTuberías (PIPES).  EN GNU-LINUX-CENTOS  ::: http://leymebamba.com
Tuberías (PIPES). EN GNU-LINUX-CENTOS ::: http://leymebamba.com
 
17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linux
 

Viewers also liked

Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada.
Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada. Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada.
Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada. INYCOM ICT Solutions
 
D E R E C H O S D E A U T O R
D E R E C H O S  D E  A U T O RD E R E C H O S  D E  A U T O R
D E R E C H O S D E A U T O Rjohanagro
 
Mar del plata_presentacion
Mar del plata_presentacionMar del plata_presentacion
Mar del plata_presentaciongaby
 
CONTENIDO #1 YO PUEDO
CONTENIDO #1 YO PUEDOCONTENIDO #1 YO PUEDO
CONTENIDO #1 YO PUEDOvictoria
 
Kamio fairy tale llega a kawaiitastic!!!
Kamio fairy tale llega a kawaiitastic!!!Kamio fairy tale llega a kawaiitastic!!!
Kamio fairy tale llega a kawaiitastic!!!Patricia Rangel Olea
 
Clase 3 texto editado - conclusiones 3- la escuela y las nuevas practicas d...
Clase 3  texto editado - conclusiones 3-  la escuela y las nuevas practicas d...Clase 3  texto editado - conclusiones 3-  la escuela y las nuevas practicas d...
Clase 3 texto editado - conclusiones 3- la escuela y las nuevas practicas d...romina1983
 
Tim Berners Lee
Tim Berners LeeTim Berners Lee
Tim Berners Leesophix97
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesRodrigo Corral
 
Organización de la información en el CIRIA
Organización de la información en el CIRIAOrganización de la información en el CIRIA
Organización de la información en el CIRIACIRIA UDLAP
 
S2880 creación programa maestría dispositivos medicos
S2880 creación programa maestría dispositivos medicosS2880 creación programa maestría dispositivos medicos
S2880 creación programa maestría dispositivos medicosFreelance
 
Bajo La Lupadel Consumidor 187
Bajo La Lupadel Consumidor 187Bajo La Lupadel Consumidor 187
Bajo La Lupadel Consumidor 187guestdca4e6d
 

Viewers also liked (20)

A los amigos
A los amigosA los amigos
A los amigos
 
Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada.
Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada. Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada.
Virtualizacion: maximice la eficiencia con la energía y refrigeración adecuada.
 
C:\fakepath\fotos acuaticasge
C:\fakepath\fotos acuaticasge C:\fakepath\fotos acuaticasge
C:\fakepath\fotos acuaticasge
 
D E R E C H O S D E A U T O R
D E R E C H O S  D E  A U T O RD E R E C H O S  D E  A U T O R
D E R E C H O S D E A U T O R
 
Mar del plata_presentacion
Mar del plata_presentacionMar del plata_presentacion
Mar del plata_presentacion
 
La casa heredada
La casa heredadaLa casa heredada
La casa heredada
 
CONTENIDO #1 YO PUEDO
CONTENIDO #1 YO PUEDOCONTENIDO #1 YO PUEDO
CONTENIDO #1 YO PUEDO
 
Kamio fairy tale llega a kawaiitastic!!!
Kamio fairy tale llega a kawaiitastic!!!Kamio fairy tale llega a kawaiitastic!!!
Kamio fairy tale llega a kawaiitastic!!!
 
Carlos
CarlosCarlos
Carlos
 
Clase 3 texto editado - conclusiones 3- la escuela y las nuevas practicas d...
Clase 3  texto editado - conclusiones 3-  la escuela y las nuevas practicas d...Clase 3  texto editado - conclusiones 3-  la escuela y las nuevas practicas d...
Clase 3 texto editado - conclusiones 3- la escuela y las nuevas practicas d...
 
Exp Mod Inv
Exp  Mod  InvExp  Mod  Inv
Exp Mod Inv
 
Tim Berners Lee
Tim Berners LeeTim Berners Lee
Tim Berners Lee
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágiles
 
Organización de la información en el CIRIA
Organización de la información en el CIRIAOrganización de la información en el CIRIA
Organización de la información en el CIRIA
 
Cierre de spye
Cierre de spyeCierre de spye
Cierre de spye
 
S2880 creación programa maestría dispositivos medicos
S2880 creación programa maestría dispositivos medicosS2880 creación programa maestría dispositivos medicos
S2880 creación programa maestría dispositivos medicos
 
Vacantes Abril 2010
Vacantes Abril 2010Vacantes Abril 2010
Vacantes Abril 2010
 
Hadas
HadasHadas
Hadas
 
Sesion 1 posgrado
Sesion 1 posgradoSesion 1 posgrado
Sesion 1 posgrado
 
Bajo La Lupadel Consumidor 187
Bajo La Lupadel Consumidor 187Bajo La Lupadel Consumidor 187
Bajo La Lupadel Consumidor 187
 

Similar to 57 Php. Funciones Ftp

69 Php. Proteccion De Directorios
69 Php. Proteccion De Directorios69 Php. Proteccion De Directorios
69 Php. Proteccion De DirectoriosJosé M. Padilla
 
Php slideshare
Php slidesharePhp slideshare
Php slideshareultimodia1
 
Administracion servidores
Administracion  servidoresAdministracion  servidores
Administracion servidoresIsaac Gonzalez
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linuxbat1820
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linuxbat18
 
05 Php. Configuracion De Php
05 Php. Configuracion De Php05 Php. Configuracion De Php
05 Php. Configuracion De PhpJosé M. Padilla
 
Servidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSServidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSKramer Garay Gómez
 
Correo multidomino
Correo multidominoCorreo multidomino
Correo multidominoGuiro Lin
 

Similar to 57 Php. Funciones Ftp (20)

Servidor ftp
Servidor ftpServidor ftp
Servidor ftp
 
Unidad 3 ficheros
Unidad 3 ficherosUnidad 3 ficheros
Unidad 3 ficheros
 
Servidor ftp
Servidor ftpServidor ftp
Servidor ftp
 
69 Php. Proteccion De Directorios
69 Php. Proteccion De Directorios69 Php. Proteccion De Directorios
69 Php. Proteccion De Directorios
 
mejorando con php
mejorando con phpmejorando con php
mejorando con php
 
Php slideshare
Php slidesharePhp slideshare
Php slideshare
 
Ftp file trnasfer protoc ol
Ftp file trnasfer protoc olFtp file trnasfer protoc ol
Ftp file trnasfer protoc ol
 
Ftp file trnasfer protoc ol
Ftp file trnasfer protoc olFtp file trnasfer protoc ol
Ftp file trnasfer protoc ol
 
Administracion servidores
Administracion  servidoresAdministracion  servidores
Administracion servidores
 
Manejo de archivos
Manejo de archivosManejo de archivos
Manejo de archivos
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
Unix
UnixUnix
Unix
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linux
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linux
 
05 Php. Configuracion De Php
05 Php. Configuracion De Php05 Php. Configuracion De Php
05 Php. Configuracion De Php
 
Manual instalacion svn
Manual instalacion svnManual instalacion svn
Manual instalacion svn
 
Protocolo ftp
Protocolo ftpProtocolo ftp
Protocolo ftp
 
Servidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSServidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOS
 
Correo multidomino
Correo multidominoCorreo multidomino
Correo multidomino
 

More from José M. Padilla

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTJosé M. Padilla
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0José M. Padilla
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busquedaJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionJosé M. Padilla
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.José M. Padilla
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.José M. Padilla
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20José M. Padilla
 

More from José M. Padilla (20)

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busqueda
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
 

Recently uploaded

Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Festibity
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 

Recently uploaded (14)

Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 

57 Php. Funciones Ftp

  • 1. Funciones FTP Dos tipos de transferencias Requisitos del sistema En la página anterior hemos hablado de la manera de transferir El uso de estas funciones requiere que PHP tenga activada la opción FTP (enabled), que información entre el ordenador de en nuestro caso está activada en la configuración por defecto, tal como puedes ver a través un usuario y un servidor web. de tu info.php, que tendrá un apartado idéntico al que observamos en la siguiente imagen. Aquí trataremos algo –similar a primera vista– un poco distinto. Es el caso las transferencias –en los dos sentidos– entre servidores (un servidor HTTP y un servidor FTP). Esto en cuanto a PHP. Pero además de esta configuración será imprescindible disponer de un servidor FTP accesible y activo. En este tipo de transferencias intervienen dos En la configuración descrita en la servidores: el servidor HTTP (nuestro Apache) y el servidor FTP, cuyo procedimiento de instalación del servidor FTP hemos instalación y configuración hemos descrito en el apartado Servidor de FTP. Antes de poder establecido que ambos servidores utilizar las funciones que aquí describimos deberás tener instalado y activo el servidor FTP tengan por root el mismo que allí se describe. directorio, pero no es la única opción posible. Nos conviene recordar que en la configuración allí descrita el servidor se llama: Es totalmente factible que uno de localhost; y que hemos creado diferentes usuarios (con privilegios distintos) entre ellos los servidores esté alojado en un admin. hosting de Londres y el otro en Sydney, por poner un ejemplo de Comprobación de login y conexión lugares distantes. Imaginemos que todo esto es <? cierto. # conexión con el servidor FTP if($x=@ftp_connect ("localhost",21)){ echo "Conexión FTP activada<br>"; Transferencias FTP }else{ echo "No se activo lo conexión FTP<br>"; Los dos primeros pasos para poder } utilizar las funciones FTP han de # registro de usuario ser: abrir la conexión y pasar el if(@ftp_login($x,"admin","admin")){ login. El último sería cerrar la conexión. echo "El login y la password han sido aceptados"; }else{ echo "Error en login o password"; Abrir la conexión } #desconexión $x=ftp_connect (host,pt) ftp_quit($x); ?> Esta función –en la que host es una cadena con el nombre del servidor FTP (no te olvides de ponerlo entre comillas) y pt es el ejemplo91.php número del puerto a través del cual se efectúa la conexión FTP– abre una conexión con el servidor Lista de contenidos del subdirectorio Apache FTP. Si se omite pt se asigna por <? defecto el valor 21 que es el if($x=@ftp_connect ("localhost",21)){ puerto que se usa habitual- mente echo "Conexión FTP activada<br>"; para acceder a este tipo de }else{ servidores. echo "No se activo lo conexión FTP"; } La variable $x recogerá el identificador de conexión que if(@ftp_login($x,"admin","admin")){ será utilizado por las demás echo "El login y la password han sido aceptados<BR><BR>"; funciones. }else{ echo "Error en login o password"; } «Loguearse» $lista=ftp_nlist($x,"/Apache"); foreach($lista as $c=>$v){ Utilizaremos este término del argot print "Indice: ".$c." Valor: ".$v."<br>"; informático –¿horrible, verdad?– } para referirnos al hecho de que el print "<H1>Lista completa</H1>"; usuario se acredite como $listacompleta=ftp_rawlist($x,"/"); autorizado en el servidor FTP. foreach($listacompleta as $c=>$v){ ftp_login($x,user,pass) print "Indice: ".$c." Valor: <H1>".$v."</H1>"; } Una vez abierta la conexión es ftp_quit($x); preciso comenzar la sesión ?> utilizando la función ftp_login con los siguientes parámetros: ejemplo92.php • $x, que es la variable en la que se recogía el resultado de ftp_connect. El resultado de la ejecución del script anterior podría producir una salida similar a esta: • user, que es el nombre de usuario. • pass, que es la password del usuario. Esta función devuelve un valor booleano que será 1 en el caso en que se inicie la sesión correctamente o NUL si no lo hace.
  • 2. Cerrar la conexión Mediante la función: ftp_quit($x) se cierra la conexión abierta con el identificador indicado en la variable $x. Gestión de directorios en el servidor FTP Una vez logueados y con la conexión activa ya podremos utilizar funciones FTP tales como: ftp_cdup($x) Tal como puedes ver en la imagen, la cadena devuelta por la función ftp_rawlist tiene dos resultados distintos. La primera de las cadenas comienza por – lo cual indica que se trata de Nos situa en el directorio raíz del un archivo y documento. En el segundo de los casos ese primer carácter es d e indica que servidor FTP. se trata de un directorio. ftp_pwd($x) Los nueve caracteres siguientes especifican los permisos de acceso a los ficheros y/o directorios. Se subdividen en tres bloques de igual tamaño que corresponden a los tres Nos devuelve una cadena con el niveles de usuarios habituales en sistemas Unix/Linux (propietario, grupo y resto de nombre del directorio actual. usuarios). Para nuestros propósitos bastará con que consideremos los privilegios del primer bloque, es decir los del propietario. ftp_chdir($x, nuevodir) El primero carácter de cada bloque sólo puede ser r ó –. Si se trata de un fichero y está Cambia el acceso actual al marcado con r indica que se permite el acceso a él en modo lectura y si se trata de un directorio especificado por la directorio indica que está permitida la visualización de su contenido. cadena nuevodir, en caso de que El segundo de los caracteres (puede ser w ó –) indica, si se trata de un fichero, que está exista. permitida la modificación del fichero. Cuando se trata de un directorio significa que se pueden añadir o suprimir ficheros. ftp_pwd($x) El tercero de los caracteres indicaría (x ó –) que el fichero -si se trata de un ejecutable- Indica el nombre del directorio al tiene permisos para ser ejecutado. Cuando se trata de un directorio, indica que pueden que estamos accediendo en este conocerse los atributos de los ficheros que contiene y que está permitido el acceso a él y a momento. sus subdirectorios. El signo – significa la negación del atributo en todas las opciones. ftp_mkdir($x, nomdir) El siguiente carácter, el número 1, está asociado con sistemas Linux/Unix e indicaría el número de vínculos duros contra el archivo, que es otra cosa que una forma de asignar Crea un subdirectorio –en el directorio actual– cuyo nombre es nombres distintos a un mismo fichero. el nombre indicado en la cadena Los dos grupos siguientes -parece que no demasiado relevantes para nuestros nomdir. propósitos- ser los nombres del usuario y grupo al que pertenece. A continuación aparece el tamaño del archivo (cero si se trata de un directorio), la fecha ftp_rmdir($x, nomdir) y hora de su creación y el nombre del archivo o directorio. Borra el directorio especificado en la cadena nomdir. Una miscelánea de las funciones FTP Para que un directorio pueda ser borrado se requiere que esté <? vacío y que esté incluido dentro # Conexión con el el servidor ftp del directorio actual. if(!$x=@ftp_connect ("localhost",21)){ echo "No se activo lo conexión FTP"; exit(); Información sobre los } contenidos de los # Identificación de usuario directorios if(!@ftp_login($x,"admin","admin")){ del servidor FTP echo "Error en login o password"; exit(); ftp_nlist($x, nomdir) } /* comprobamos el nombre del directorio actual del servidor FTP Devuelve una array escalar con los que será el root correspondiente al usuario registrado */ nombres de los ficheros y echo "El directorio actual es: ",ftp_pwd($x),"<br>"; subdirectorios contenidos en el directorio que se indica en nomdir. /* intentamos cambiar a un subdirectorio indicando la ruta absoluta partiendo del directorio root del usuario actual. Si se trata del directorio actual, el En caso de error (ruta incorrecta o falta de permisos de accesos parámetro nomdir puede nos daría un mensaje de error. Si el cambio tiene éxito nos indicaría especificarse como una cadena el nombre del nuevo directorio */ vacia (""). if(!@ftp_chdir($x,"/Apache/htdocs")){ print "No tienes permisos de acceso a este directorio<br>"; Si la información se refiere a un subdirectorio del actual bastará print "o la ruta es incorrecta.¡Comprueba los datos!<br>"; poner su nombre como valor del }else{ parámetro nomdir. echo "Hemos cambiado al directorio: ",ftp_pwd($x),"<br>"; } En cualquier otro caso nomdir # comprobamos el nombre del sistema operativo del servidor de FTP contendrá la ruta completa. echo "El S.O: del servidor FTP es: ",ftp_systype ($x),"<br>"; /* obtenemos una matriz conteniendo la lista de ficheros y directorios ftp_rawlist($x, nomdir) del subdirectorio "cursoPHP/images" del del directorio actual*/ Igual que la función anterior, $lista=ftp_nlist($x,"cursoPHP/images"); ftp_rawlist también devuelve un # escribimos la lista de ficheros contenidos en ese directorio array escalar, pero en este caso echo "Lista de ficheros contenidos en el subdirectorio cursoPHP/ con información ampliada. images<br>"; foreach ($lista as $valor){ Este array detalla, además del echo $valor,"<br>"; nombre del fichero, el tamaño, el } tipo, la fecha de la última modificación y los permisos de # obtenemos una lista completa de los contenidos de ese subdirectorio lectura y/o escritura. $lista=ftp_rawlist($x,"cursoPHP/images"); # ordenamos el array que contiene la lista anterior sort($lista); Transferencia de ficheros echo "Contenidos del subdirectorio cursoPHP/images<br>"; /* extrae los elementos del array eliminando los espacios repetidos Las transferencias de ficheros
  • 3. mediante la funcion preg_replace en la que s+ indica uno o más espacios pueden realizarse en ambos que serán sustituidos por uno solo (' ') */ sentidos. foreach($lista as $v){ Desde el servidor FTP $v=preg_replace('/s+/', ' ', $v); hasta el servidor HTTP # imprimimos la cadena completa print "<br><BR><BR>".$v."<br>"; Mediante la función: # convertimos la cadena en un array # utilizando los espacios como separadores ftp_get($x,nloc,nrem,modo) $extrae=explode(" ",$v); se transfiere un fichero desde un # leemos los elementos del array y comentamos sus valores servidor FTP hasta un directorio foreach($extrae as $indice=>$cont){ del servidor HTTP en el que se está switch($indice){ ejecutando PHP. case 0: print "El elemento de indice".$indice." es: ".$cont."<br>"; La cadena nloc contiene el nombre if (substr($cont,0,1)=="d"){ con el que el fichero será copiado print "Es un directorio<br>"; en el directorio actual del servidor }elseif(substr($cont,0,1)=="-"){ web y la cadena nrem contiene el nombre (incluyendo el path) del print "Es un fichero<br>"; fichero que debe ser trasferido. } if (substr($cont,1,1)=="r"){ El parámetro modo puede print "Tiene permisos de LECTURA<br>"; contener uno de estos valores: }elseif(substr($cont,1,1)=="-"){ FTP_ASCII o FTP_BINARY print "No tiene permisos de LECTURA<br>"; } Desde el servidor HTTP hasta el servidor FTP if (substr($cont,2,1)=="w"){ print "Tiene permisos de ESCRITURA<br>"; Para realizar transferencias en }elseif(substr($cont,2,1)=="-"){ sentido contrario al anterior se print "No tiene permisos de ESCRITURA<br>"; utiliza la siguiente sintaxis: } break; ftp_put($x,nrem,nloc,modo) case 4: Se comporta de forma idéntica a la print "El tamaño de este fichero es: ".$cont." bytes<br>"; función anterior. La cadena nrem break; sigue siendo el nombre y el path case 8: del servidor FTP (donde vamos a print "El nombre del fichero o directorio es: ".$cont."<br>"; copiar el fichero) y nloc contiene break; el nombre del fichero en el } servidor web (origen de la } transferencia). } /* creamos un subdirectorio (del directorio actual) Modificación de ficheros con nombre experimento anteponiendo @# para evitar mensajes de error en el servidor FTP en caso de que ya existiera */ @ftp_mkdir($x,"experimento"); ftp_rename($x,nant,nnuevo) /* copiamos el fichero enol.jpg desde el directorio que se indica en el tercer parámetro (dentro servidor Apache) Cambia el nombre del fichero nant al directorio del servidor FTP que se indica por el indicado en la cadena en el segundo parámetro. Le ponemos por nombre lago_enol.jpg */ nnuevo. ftp_put($x, "/Apache/htdocs/experimento/lago_enol.jpg", "../cursoPHP/enol.jpg",FTP_BINARY); ftp_delete($x,fichero) # obtenemos el tamaño del fichero transferido Elimina -en el servidor FTP- el echo "El tamaño de fichero tranferidos es: ", fichero indicado en la cadena ftp_size($x,"/Apache/htdocs/experimento/lago_enol.jpg")," bytes<br>"; fichero. /* escribimos la fecha de la última modificación del fichero transferido que coincidirá con la fecha y hora en la que se realizó la transferencia. Convertimos a formato de fecha convencional el tiempo UNIX que devuelve Información sobre la función ftp_mdtm */ ficheros del en el servidor print "La fecha de modificacion del fichero es:"; FTP print date("d-m-Y H:i:s", ftp_mdtm($x,"/Apache/htdocs/experimento/lago_enol.jpg")); ftp_size($x,nomfile) # cambiamos el nombre del fichero lago_enol.jpg por lago_covadonga.jpg # en el servidor FTP Devuelve el tamaño (en bytes) del @ftp_rename($x,"/Apache/htdocs/experimento/lago_enol.jpg", fichero que se indica en la cadena nomfile. "/Apache/htdocs/experimento/lago_covadonga.jpg"); /* creamos un enlace de descarga directa del fichero haciendo una llamada ftp_mdtm($x,nomfile) mediante el protocolo ftp:// utilizando la sintaxis: ftp://usuario:contraseña@nombre del servidor Esta función devuelve la fecha de seguidos de la ruta (en el servidor FTP) y el nombre del fichero */ la última modificación del fichero print "<BR><A href='ftp://admin:admin@localhost"; indicado en la cadena nomfile. Esta print "/Apache/htdocs/experimento/lago_covadonga.jpg'> Descargar</a>"; fecha se indica en tiempo Unix. /* transferimos al directorio del servidor Apache indicado en el segundo parámetro (con el nombre que se indica Ejercicio nº 31 en el mismo) un fichero procedente del servidor FTP cuyo nombre y ruta se indican en el tercer parámetro*/ Crea un formulario y un script ftp_get($x,"../cursoPHP/liborio.jpg", mediante los cuales puedas "/Apache/htdocs/experimento/lago_covadonga.jpg",FTP_ASCII); subir al directorio /* comprimimos un fichero alojado en el servidor Apache Documentacion del servidor para transferirlo comprimido al servidor FTP */ FTP un fichero cualquiera. #empezamos leyendo el fichero y guardándolo en una cadena $f1=fopen("../cursoPHP/cabina.jpg","r"); Utiliza el nombre de usuario while (!feof($f1)) { y contraseña adecuados $cadena .= fgets($f1,1024); para poder acceder al } directorio indicado y evita fclose($f1); que quede copia del fichero # comprimimos la cadena obtenida del fichero anterior en el servidor Apache. $c1=gzencode($cadena,3,FORCE_GZIP); # guardamos la cadena comprimida en un fichero Intenta mejorar el script para $f=fopen("cabina.jpg.gz","w"); limitar el tamaño del archivo fwrite($f,$c1); y restringir la transferencia a fclose($f); formatos *.jpg ó *.gif. /* al servidor el fichero comprimido. No es necesario indicar la ruta actual ya que ha sido creado en el mismo directorio
  • 4. en el que se está ejecutando el script */ ftp_put($x, "/Apache/htdocs/experimento/cabina.jpg.gz", "cabina.jpg.gz",FTP_BINARY); #eliminamos el fichero comprimido del servidor Apache unlink("cabina.jpg.gz"); # cerramos la conexión con el servidor ftp ftp_quit($x); # establecemos un enlace de descarga para el fichero comprimido print "<BR><A href='ftp://admin:admin@localhost"; print "/Apache/htdocs/experimento/cabina.jpg.gz'>Descarga comprimido</a>"; ?> ejemplo93.php Anterior Indice Siguiente