Como leer los archivos del servidor con ASP y pasarlo a Flash
En este tutorial vamos a explicar cómo obtener el nombre y el tamaño en KBytes de los archivos alojados en determinado directorio del servidor web. Luego pasaremos está información a Flash en formato XML.
21/8/07 - Esta técnica tiene múltiples aplicaciones, como por ejemplo:
- Cargar una galería de imágenes que previamente hayamos depositado vía FTP en en el servidor.
- Mostrar los enlaces de descarga de un conjunto de archivos en una carpeta. (NUESTRO CASO)
- Explorar el contenido del disco duro del servidor web.
Como Flash no puede realizar esta función, necesitamos alguna tecnología de servidor como PHP, ASP, ColdFusion..., en este tutorial vamos a emplear ASP.
COMO HACERLO.
Primero creamos el archivo
explorar.asp que es el que se va a encargar de mostrar en formato XML la información de los archivos, en este ejemplo se trata de la carpeta
files situada en la raiz de nuestro dominio. En esta carpeta están los archivos de descarga que acompañan a nuestros tutoriales.
Contenido de explorar.asp
<%
' intentamos evitar la caché del navegador --------------
Response.Expires=0
Response.CacheControl="private"
' ----------------------------------------------------------------
Response.ContentType="text/XML"
'Creamos el objeto FileSystemObject
Set fso = Server.CreateObject("Scripting.FileSystemObject")
' elegimos la carpeta files desde la raiz del servidor web
' sustituir "/files/" por la que os interese
Set folder = fso.GetFolder(Server.MapPath(("/files/")))
Set files = folder.Files '
' construimos el XML ----------------------------------------
Response.Write("<?xml version='1.0' ?><exploracion carpeta='"+folder.Name+"'>")
For Each file in files
fil=file.Name
Response.write("<archivo nombre='")
Response.write(file.Name)
Response.write("' size='")
Response.write(file.size\1024)
Response.Write("' />")
Next
Response.Write("</exploracion>")
' ----------------------------------------------------------------
Set files = nothing
Set folder = nothing
Set fso = nothing
%>
En este código sólo tenéis que modificar la línea
Set folder = fso.GetFolder(Server.MapPath(("/files/")))
Donde ponéis la carpeta a explorar. Podéis ver el resultado del documento aquí.
Luego en nuestra película incluimos este código en el primer fotograma:
XML.prototype.ignoreWhite = true;
miXML = new XML();
miXML.onLoad = verArchivos;
function verArchivos(ok) {
carpetaElegida = this.firstChild.attributes.carpeta;
if (ok) {
var files = this.firstChild.childNodes;
for (var k = 0; files[k]; k++) {
archivos.addItem(files[k].attributes.nombre+" - "+files[k].attributes.size+" KBytes", files[k].attributes.nombre);
}
} else {
//fallo en la carga
}
}
function clicLista(component) {
getURL("/files/"+component.getSelectedItem().data, "_self");
}
En la primera línea,
XML.prototype.ignoreWhite = true;
le decimos a Flash, que ignore los espacios en blanco y las tabulaciones en el momento de analizar cualquier XML que carguemos.
Después, definimos el objeto XML que va a recibir los datos del fichero ASP y la función
verArchivos. Esta función se va recorrer el XML y va a añadir un elemento al listBox por cada archivo que haya en la carpeta a explorar.
La función
clicLista es la que se ejecuta cuando seleccionamos un elemento del listBox, en nuestro caso, lanza la descarga del archivo seleccionado.
Por último falta el código del botón, que es el que carga los datos XML, el código es:
on (release) {
//evitamos cargar el XML más de una vez
if (!miXML.loaded) {
miXML.load("/asp/explorar.asp");
}
}
Os recomendamos la descarga del fla con comentarios explicativos,
ejemplo_explorar.zip
Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
| Autoría, licencia y acciones sobre este artículo |
|
|
Manuales relacionados con este artículo
Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en
Flash
| Comentarios de los visitantes |
Aun no hemos recibido comentarios de este artículo.
Puedes ser el primero en enviar tu comentario.
|
Ir arriba