Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Estou desenvolvendo um Flash que precisa ler os arquivos de um determinado diretório. Como é sabido, o Flash não faz isso, precisa da ajuda de um php no servidor. Não manjo de php, peguei um pedacinho aqui, outro ali e fiz isso:
<?php
//pasta a ser lida e onde salvar o arquivo. ("." = pasta local): $dir = ".";
$dirnome = stripslashes($_POST['dir']);
$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?> \n";
if ($handle = opendir($dirnome)) {
while ( ($arquivo = readdir($handle)) !== FALSE) {
if ( $arquivo !== "." && $arquivo !== "..") {
$xml .= "<arquivo nome=\"$arquivo\"/> \n";
}
}
}
echo "listagem=".$xml;
?>
Uso sendAndLoad no Flash onde .dir = diretório que eu quero ler. Mas nem testando direto no navegador funcionou. O que está faltando?
Ahn, se alguém quiser acrescentar outra propriedades dos arquivos além do nome, não será demais...
Valeu!
Só pra complementar o que o Hinom disse, acrescenta também o header no início do código, informando que o arquivo é um XML:
header('Content-type: application/xml; charset=utf-8', TRUE);
Beleuza!!! Custei um pouco para testá-lo porque tem umas diferenças no Flash quanto ao carregamento do xml. Tipo, tem que se usar .onData ao invés de .onLoad e depois dar um parseXML manualmente - é uma forma manual de fazer as coisas. Mas é bem poderosa.
Outro detalhe importante: o servidor não aceita ler de um domínio para o outro assim no mais. Como no meu caso são subdomínios, eu utilizo o caminho completo ao invés do domínio. Não sei como liberar o acesso entre domínios, não adianta apenas dar um chmod 777, tem algo mais... mas esta é uma outra história.
Valeu a ajuda!
o script que v está mostrando gera dados no formato xml
no final, você deve trocar:
echo "listagem=".$xml;
por isso
echo $xml;
dentro do flash, utilize algum componente para leitura de XML