É só uma ideia, porque ao inves de fazer a validação do arquivo no Banco de Dados, não faz no cliente.
Eu faria assim, no inicio da aplicação carregaria a tabela de validação em memoria, e depois faria a validação contra a tabela em memoria. se tudo estiver bem faz upload, se não não faz. E assim poupa as idas desnecessarias ao Banco de dados. Como disse no inicio é apenas uma ideia On 29 Abr, 19:32, Samuel Soares <samuelesoa...@gmail.com> wrote: > 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 emhttp://groups.google.com/group/flexdev -- 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