Bom dia, estou montando um sistema que tem uma área de upload de
arquivos.
Estou utilizando o FileReferenceList para fazer o upload de varias
arquivos simultâneos. O problema é que antes de realizar o upload,
tenho que verificar se os arquivos estão "autorizados" para upload.
Para isto tenho uma tabela no banco de dados com todas as
carateristicas, como extensao, tamanho, etc, retorna TRUE ou FALSE. E
quando faço a consulta ao banco de dados não consigo "pegar" o
resultado da validação. O loop passa pelos arquivos selecionados
continua até o fim. O resultado é tratado em uma função do result da
consulta de validacao, quer dizer quando chamo a validacao em uma
funcao, o retorno vem em outra.

Estou utilizando remoteobject. Faço a consulta e "pego" o seu
resultado com uma funcao result.

Não sei se deu para entender, em outras linguagems de programação a
função faz a consulta no banco de dados, faço a análise e retorno o
resultado que precisar, só depois que o loop continua. No flex não.
Tenho uma função ou linha que faz a consulta banco de daods e tenho
outra função que só trata o resultado, enquanto isso o sistema
continua sua execução.

O problema não é no upload, mas como tratar estas funções.

COMO FAZER PARA TER ESTE RETORNO DA FUNÇÃO IMEDIATAMENTE, AO REQUISITÁ-
LA? EU PRECISO DO RESULTADO DA CONSULTA DO BANCO DE DADOS NO MOMENTO,
SEM PRECISAR DE FICAR PASSANDO POR RESULT, FAULT, TENTAR ALGUMA
ARTIMANHA, FAZER VARIAS FUNCOES, ETC..

...

                private function Validar(tipo:String):void
                {
                        
roArquivos.getOperation('VerificaTipoDeArquivo').send(tipo);
                }


                private function Upload_onSelect(event:Event):void
                {
                        lista = FileReferenceList(event.target);
                        arrayArquivos = lista.fileList
                        var i:int = 0;

                        // Percorrea a lista de arquivos selecionados
                        for (i=0; i < arrayArquivos.length; i++)
                        {
                                arquivo = FileReference(arrayArquivos[i]);
                                contador = i;
                               //
                               // É AQUI
                               //
                                if (Validar(arquivo.type) == true) 
txtArquivo.text =
txtArquivo.text + arquivo.name + "; ";
                        }
                }

                // Trata o result da validacao
                private function onResultValidacao(event:ResultEvent):void
                {
                        return event.result.toString();
                }

...

Obrigado!

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a