Download de arquivo

0 respostas
knik

Com o código abaixo:

ServletContext servletContext =  (ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext();
String pdf = servletContext.getRealPath("/pdfs");
Desktop desktop = Desktop.getDesktop();
File file = new File (pdf);
desktop.open(file);

Eu consigo, de dentro do eclipse (ou seja, em meu localhost), abrir o arquivo pdf.
O problema é, quando o site está no ar, ao invés do arquivo ser aberto na máquina cliente, ele abre no servidor!!!!
Na máquina cliente, usando IE, ao acionar o link para baixar o arquivo (abrir via Acrobat), nada acontece. Então corro até o servidor e lá está o Acrobat aberto, visualizando o arquivo. Que estranho...

O mais estranho é ainda o código abaixo:

String webFile ="http://localhost:8080/minhaAplicacao/meuArquivo.pdf";  
		try {  
		    URL url = new URL(webFile);  
		    InputStream in = url.openStream();  
		    File file = new File("D:\\","teste.pdf");  
		    FileOutputStream os = new FileOutputStream(file);  
		     
		    byte[] buf = new byte[1024];  
		    int len;  
		                          
		    while( (len = in.read(buf)) > 0 ){  
		       for(int i = 0; i < len; i++){  
		             os.write(buf[i]);  
		       }  
		    }  
	    os.flush();  
	    os.close();      
	    in.close();  

	}catch (MalformedURLException e){  
		    System.out.println(e);  

	}catch (IOException e){  
		    System.out.println(e);  

	}finally{  
		    System.out.println("tudo ok");  
	}

Este código deveria fazer o download do SERVIDOR para a minha máquina, para o meu diretório "D". No entanto ele faz o "download" para ele mesmo, ou seja, para o diretório D do servidor.
Já quebrei muito a cabeça com este código, que deveria dar certo, mas não consigo achar o erro.
Alguém me ajuda?

Criado 24 de janeiro de 2009
Respostas 0
Participantes 1