Si alguna vez has subido un sitio web a un proveedor de hosting, es probable, que ha utilizado FTP para hacer esto. FTP significa Protocolo de transferencia de archivos. Como su nombre lo sugiere, FTP es un protocolo estándar para la transferencia de archivos a través de Internet.
Para utilizar FTP, se necesita un "cliente de FTP". Esta es una pieza de software que le permite iniciar una transferencia. Además, el equipo de destino debe tener un servidor FTP. Se trata de un servidor que se ha instalado en el ordenador que permite a los sitios FTP se configuren. IIS incluye un servidor FTP. Una vez que un sitio FTP se ha configurado, los usuarios con clientes FTP pueden conectar y transferir archivos desde y hacia el servidor.
Usted puede estar familiarizado con programas como WSFTP, FileZilla, CuteFTP, etc. Estos son clientes FTP. Utilización de ColdFusion, usted puede crear su propio cliente FTP también.
Ahora, probablemente no hay mucha razón para crear un cliente FTP para usted si usted ya tiene una. Pero, ¿y si la aplicación necesita para ejecutar una tarea programada de forma regular que los archivos de FTP desde otro servidor? O bien, es posible que tenga un gestor de contenidos que debe permitir a los usuarios a FTP archivos a / desde un socio de negocios, pero el acceso debe ser restringido a una acción determinada (por ejemplo, puede evitar que la eliminación de archivos). La etiqueta CFFTP es perfecto para esto.
Listar el contenido de un directorio
El siguiente código muestra el contenido de un directorio en el servidor FTP remoto. Al dejar el directorio de atribuir en blanco, obtendremos una lista del directorio de trabajo. Para especificar otro directorio, utilice una ruta relativa a ese directorio.
Tenga en cuenta que lista el contenido de un directorio de toma dos pasos. En primer lugar, usted hace el bit de FTP y guardar el resultado de una consulta. Esto se especifica proporcionando un nombre. Una vez que has hecho el bit de FTP, ahora se puede trabajar con los resultados haciendo referencia al nombre. Por ahora, nos limitaremos a mostrar los resultados utilizando el cfdumpetiqueta.
También tenga en cuenta que, estoy usando localhost como nombre de servidor. Esto se debe a que, con el fin de probar estos ejemplos, he configurado un sitio FTP en mi máquina local, entonces realicé acciones contra ese sitio. No hay ninguna regla que diga que el sitio FTP no puede estar en la misma máquina que la máquina cliente (si bien, aparte de la creación de ejemplos como estos, es probable que no se moleste).
< cfftp
action = " listDir "
name = " RemoteDirectoryContents "
directory = " "
server = " localhost "
username = " homer "
password = " simpson " >
<Cfdump var = "# RemoteDirectoryContents #">
En función de los contenidos del directorio, el código anterior podría resultar en algo como esto:
consulta | ||||||||
---|---|---|---|---|---|---|---|---|
ATRIBUTOS | IsDirectory | ÚLTIMA MODIFICACIÓN | LARGO | MODO | NOMBRE | CAMINO | URL | |
1 | [cadena vacía] | SÍ | {ts '2007-01-13 05:15:15'} | 0 | no se admite actualmente | imágenes | / imágenes | ftp: // localhost / imágenes |
2 | [cadena vacía] | NO | {ts '2007-01-13 05:15:15'} | 4 | no se admite actualmente | index.html | /index.html | ftp: //localhost/index.html |
3 | [cadena vacía] | NO | {ts '2007-01-13 07:14:15'} | 6500 | no se admite actualmente | ReadmeLater.htm | /ReadmeLater.htm | ftp: //localhost/ReadmeLater.htm |
Para ser un poco más elaborado, en lugar de utilizar cfdump, podría utilizar cfoutput y se refieren a cada elemento que necesita por su nombre:
<Cfoutput consulta = "RemoteDirectoryContents">
# ruta # <br /> </ cfoutput>
Esto daría lugar a:
/ images
/index.html
/ReadmeLater.htm
/index.html
/ReadmeLater.htm
Obtener archivo
Los siguientes copia un archivo desde el servidor FTP remoto en el equipo local de código. Podemos utilizar los failIfExists atributo para determinar qué hacer si el archivo ya existe. En este caso se sobrescribe porque especificamos failIfExists = "no".
< cfftp
action = " getFile "
server = " localhost "
username = " homer "
password = " simpson "
remotefile = " /images/print.gif "
localfile = " C:\local_print.gif "
failIfExists = " no " >
Archivo Ponga
Los siguientes copia un archivo desde la máquina local al servidor FTP de código remoto.
< cfftp
action = " putFile "
server = " localhost "
username = " homer "
password = " simpson "
localfile = " C:\ReadmeFirst.htm "
remotefile = " /ReadmeLater.htm " >
Remover archivo
El código siguiente elimina (borra) un archivo desde el servidor FTP remoto.
<CFFTP
acción = "eliminar"
servidor = "localhost"
nombre de usuario = "jonrón"
password = "simpson"
artículo = "/ReadmeLater.htm">
Renombrar archivo
El código siguiente cambia el nombre de un archivo remoto llamado "ReadmeLater.htm" a "ReadmeNow.htm".
< cfftp
action = " rename "
server = " localhost "
username = " homer "
password = " simpson "
existing = " /ReadmeLater.htm "
new = " /ReadmeNow.htm " >
Otros atributos útiles
La etiqueta CFFTP acepta diversos atributos opcionales que puede que tenga que utilizar, en función de sus necesidades o la configuración de FTP. Uso también dependerá de la acción FTP está llevando a cabo también. Estos atributos son:
- STOPONERROR
- Si esto es igual a "sí", ColdFusion generará un error si la operación FTP falla. Usando STOPONERROR = "sí" le permite utilizarcftry / cfcatch para manejar el error.
- se acabó el tiempo
- Le permite proporcionar un período de tiempo de espera.
- RetryCount
- Número de veces que se intentará conectarse si hay problemas.
- asciiextensionlist
- Le permite proporcionar una lista de extensiones de archivos que se consideran archivos ASCII. Si transferMode = "auto", estos archivos se transferirán como ASCII.
- modo de transferencia
- Le permite configurar el modo de transferencia. Los valores posibles son "auto", "ASCII" y "binario".
- pasivo
- Le permite determinar si se debe utilizar el modo pasivo o modo activo. Algunos servidores FTP requieren que utilice el modo pasivo. Los valores posibles son "sí" y "no"
- servidor proxy
- Permite que usted proporcione los detalles de un servidor proxy.
Gracias por la info, saludos!
ResponderEliminar