Como faz download em java ? [RESOLVIDO]

5 respostas
dijava

turma nunca precisei desenvolver nenhuma aplicacao q fzsse download, nao sei o conceito e nem como se faz em jsp algume pode dar uma ajuda, procurei no google e o q apararce é download do java na sun e essas coisas !!!

5 Respostas

Rafael_Marques1

como assim?

robert.gamma

Cara encontrei isto: http://markmail.org/message/k6tb5btyvw2he5iu

Ve te ajuda.

Flw

dijava

blz deu uma luz, mas nao consegui, algume pode ajudar eu faco assim

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename = "+ meuArquivo.getAbsolutePath() +  + "\"");

o caminho onde esta o meu xls é “c:/dados.xls”, qnd abre a telinha do download arquivo vem vazio e o nome dele aparece “c__dados.xls_” pq ?

Abdon

Não é bem assim, o nome do seu arquivo não tem haver com o lugar que ele esta na sua maquina.

Para fazer isso vc deve utilizar um response.getOutputStream e escrever os bytes do arquivo de vc deseja fazer download com o metodo write.

Ai vc da um Outputstream.flush()

No filename vc deve colocar apenas dados.xls sem o C:\ que deve funcionar perfeitamente.

// O codigo pode não compilar prq eu fiz de cabeça
OutputStream out = response.getOutputStream();
out.write(seusBytesDoArquivo); //vc tem que pegar seu arquivo com um inputstream, ler os bytes para poder escrever aqui.
out.flush();
out.close();

response.setContentType("application/vnd.ms-excel");  
response.setHeader("Content-Disposition", "attachment; filename=dados.xls" );

Entendeu?

dijava

po vlw !!! mas um pouco antes de vc dar a luz eu vi aqui no jGuru alias muito bom esse site !!! mas obrigado do mesmo jeito vlw mesmo !!!

bom turma para os proximos q verão esse post fica o codigo !!!

response.setContentType("application/vnd.ms-excel");
		response.setHeader("Content-Disposition", "attachment; filename = \" "+ nomeDoArquivo + "\"");

InputStream isStream = null;
		ServletOutputStream sosStream = null;
	  	try
	  	{
	  		
			isStream = new FileInputStream(meuArquivo);
			sosStream = response.getOutputStream();
			int ibit = 256;
	   		while ((ibit) >= 0)
	   		{
	        	ibit = isStream.read();
	        	sosStream.write(ibit);
	        }
		}
		catch (IOException ioeException){
			ioeException.printStackTrace();
		}
	    sosStream.flush();
	    sosStream.close();
	    isStream.close();
Criado 2 de fevereiro de 2010
Ultima resposta 2 de fev. de 2010
Respostas 5
Participantes 4