Como ler os arquivos do servidor com ASP e passá-lo a Flash

Neste tutorial vamos explicar como obter o nome e o tamanho em KBytes dos arquivos alojados em determinado diretório do servidor web. Logo, passaremos esta informação a Flash em formato XML.

Por Tutoriales-flash.com


Publicado em: 21/8/08
Valorize este artigo:
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






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato