Olá a todos =]
Estou com uma classe, que faz um simples download, porém com uma propriedade muito estranha.
String caminho = getDownloader().getDir() + getDownloader().getListaArquivos().get(indice);
File file = new File(caminho);
FileInputStream fileIn = new FileInputStream(file);
ServletOutputStream out = resp.getOutputStream();
byte[] outputByte = new byte[2*4096];
int contaByte = 0;
System.out.println("pre-loop");
while((contaByte = fileIn.read(outputByte, 0, 2*4096)) != -1) {
out.write(outputByte, 0, 2*4096);
}
System.out.println("pos-loop");
Notem os prints pos e pre loop. È ai que está o problema. Quando eu clico para baixar um arquivo, eu tenho a mensagem Pre-Loop, e aparece a tela Salvar/Abrir do arquivo que está sendo baixado. Depois do download completar, eu tenho PosLoop.
O problema é, se eu cancelo o download. Cancelar 1 download nao faz diferença mas se eu clico para fazer 5 downloads e cancelo os 5 por exemplo, a aplicação trava.
Alguem sabe como pular essa tela de salvar/abrir de download e começar o download instantaneamente , ou algum método mais eficaz de se fazer o download ? Estou usando struts.
Obrigado pela atenção.