Clicar num link e abrir janela de download

Olá pessoal do GUJ

Estou com uma dúvida: é possível, ao clicar num link que leva para um arquivo que o browser normalmente abra direto, como txt e pdf, que ao invés de abrir ele mostre a janela de salvar no disco?

Se alguém não entendeu tento explicar melhor depois rsrsrs.

Flw

Isso é meio chato porque depende um pouco do seu browser. Tradicionalmente você, no seu servlet ou no seu web server, ajusta o “MIME type” para algo que não seja o esperado para aquele tipo de arquivo (por exemplo, em vez de “application/pdf”, você use “application/x-qualquercoisa-inesperada”.
Mas alguns browsers (Internet Explorer) teimam em analisar os primeiros 1024 bytes do que estão baixando, e em vez de salvar chamam o aplicativo de qualquer maneira. Isso depende muito da versão do IE que você está usando.

Kbça isso e meio ruim de explica tu terá que ter 2 métodos tipo assim

Esse primeiro para ler os bytes do arquivo…

public static byte[] leitor( File arquivo ) throws IOException {
      	
        	byte[] Conteudo = null;
        	int tamanhoArquivo = (int) arquivo.length();
        	FileInputStream encheArquivo = null;

        	try {
        	    encheArquivo = new FileInputStream(arquivo);

        	    BufferedInputStream bufferDeEntrada = new BufferedInputStream(encheArquivo);
        	    Conteudo = new byte[tamanhoArquivo];
        	    bufferDeEntrada.read(Conteudo, 0, tamanhoArquivo);
        	    bufferDeEntrada.close();
        	} finally {
        	    if (encheArquivo != null) {
        	        encheArquivo.close();
        	    }
        	}

        	return Conteudo;
    }

E o 2 para forçar o download

public static void download( String nomeArquivo, byte[] conteudo,
                                 							  HttpServletResponse response ) throws IOException {       
        
        response.setContentType( "application/download" );
        response.setHeader("Content-Disposition", 
                "attachment; filename=\"" + nomeArquivo+ "\"");  
        ServletOutputStream saidaDoDownload = response.getOutputStream();

        try {
            saidaDoDownload.write(conteudo);
            saidaDoDownload.flush();
        } finally {
            saidaDoDownload.close();		
        }
    }

E isso ai com isso vc força a abrir o download de qualquer arquivo…
Flws