Esta técnica tem múltiplas aplicações, como por exemplo:
- Carregar uma galera de imagens que previamente tenhamos depositado via FTP no servidor.
- Mostrar os links de download de um conjunto de arquivos em uma pasta. (NOSSO CASO)
- Explorar o conteúdo do disco rígido do servidor web.
Como Flash não pode realizar esta função, necessitamos alguma tecnologia de servidor como PHP, ASP, ColdFusion..., neste tutorial vamos empregar ASP.
COMO FAZÊ-LO.
Primeiro criamos o arquivo
explorar.asp que é o que se vai encarregar de mostrar em formato XML a informação dos arquivos, neste exemplo se trata da pasta
files situada na raiz de nosso domínio. Nesta pasta estão os arquivos de download que acompanham nossos tutoriais.
Conteúdo de explorar.asp
<%
' tentamos evitar o cache do navegador --------------
Response.Expires=0
Response.CacheControl="private"
' ----------------------------------------------------------------
Response.ContentType="text/XML"
'Criamos o objeto FileSystemObject
Set fso = Server.CreateObject("Scripting.FileSystemObject")
' escolhemos a pasta files atraves da raiz do servidor web
' substituir "/files/" pela que lhes interesse
Set folder = fso.GetFolder(Server.MapPath(("/files/")))
Set files = folder.Files '
' construimos o XML ----------------------------------------
Response.Write("<?xml versao='1.0' ?><exploracao pasta='"+folder.Name+"'>")
For Each file in files
fil=file.Name
Response.write("<arquivo nome='")
Response.write(file.Name)
Response.write("' size='")
Response.write(file.size\1024)
Response.Write("' />")
Next
Response.Write("</exploracao>")
' ----------------------------------------------------------------
Set files = nothing
Set folder = nothing
Set fso = nothing
%>
Neste código só têm que modificar a linha
Set folder = fso.GetFolder(Server.MapPath(("/files/")))
Onde colocarem a pasta a explorar. Pode-se ver o resultado do documento aqui.
Logo, em nosso filme incluímos este código no primeiro fotograma:
XML.prototype.ignoreWhite = true;
meuXML = new XML();
meuXML.onLoad = verArquivos;
function verArquivos(ok) {
pastaEscolhida = this.firstChild.attributes.pasta;
if (ok) {
var files = this.firstChild.childNodes;
for (var k = 0; files[k]; k++) {
arquivos.addItem(files[k].attributes.nome+" - "+files[k].attributes.size+" KBytes", files[k].attributes.nome);
}
} else {
//falha no carregamento />
}
}
function clicLista(component) {
getURL("/files/"+component.getSelectedItem().data, "_self");
}
Na primeira linha,
XML.prototype.ignoreWhite = true;
Dizemos a Flash, que ignore os espaços em branco e as tabulações no momento de analisar qualquer XML que carreguemos.
Depois, definimos o objeto XML que vai receber os dados do arquivo ASP e a função
verArquivos. Esta função vai percorrer o XML e vai adicionar um elemento ao listBox por cada arquivo que houver na pasta a explorar.
A função
clicLista é a que se executa quando selecionamos um elemento do listBox, em nosso caso, lança o download do arquivo selecionado.
Por último falta o código do botão, que é o que carrega os dados XML, o código é:
on (release) {
//evitamos carregar o XML mais de uma vez
if (!meuXML.loaded) {
meuXML.load("/asp/explorar.asp");
}
}
Recomendamos o download do fla com comentários explicativos,
exemplo_explorar.zip