Vou tentar resumir o melhor possível o problema…
Eu preciso implementar uma página que permitirá aos usuários realizarem upload de arquivos.
Como a maioria dos arquivos terão tamanho maior que 10 MB e não há garantia da qualidade da conexão do usuário, seria necessário mostrar alguma informação de progresso ao usuário.
Minha primeira idéia seria:
- Criar um servlet (EnviaArquivo) que recebe a requisição de um arquivo;
- Criar um servlet (VerificaProgresso) que busca no banco dados do processamento de um arquivo de uma tabela de controle;
- o Servlet EnviaArquivo chamará uma thread que processará o arquivo enviado e já direcionará para uma pagina. Ex.: processamento.jsp
- Na thread, a cada quantidade de bytes processados do arquivo, será salvo esse dado em alguma tabela de controle;
- Enquanto a thread é executada, na pagina processamento.jsp seria utilizada uma função ajax para receber os resultados da chamada do servlet VerificaProgresso e mostra na página.
Essa solução é viável?
Alguém conhece alguma solução mais refinada para este problema?
Agradeço antecipadamente.