aplicação web cliente abrindo um pdf

1 resposta
X

Boa noite senhores.

Estou com a seguinte dúvida. Tenho uma aplicação WEB que chama um WEBService. Esse WEBService retorna um relatório PDF no formato string base64. A minha dúvida é como a aplicação WEB Client poderia exibir esse PDF. Sou novo ainda em se tratando de aplicação WEB. Consegui fazer a chamada do WEBService e inclusive já tenho o retorno da string base64 porém agora não sei como continuar o fluxo. Estava pensando em gerar o arquivo físico a partir do string base64 em algum diretório da máquina, tipo:

File arquivoPdf = new File("c://temp//teste.pdf)

e depois abrir esse pdf, mas acho que esse conceito seria para aplicações desktop e não daria certo, estou correto ?

Alguém com experiência em Web poderia me orientar como fazer para exibir esse pdf a partir de uma aplicação WEB na máquina do cliente ?

Obrigado desde já

1 Resposta

mmaico

Olá,
O que você pensou em fazer esta correto, ou seja, faça a conversão de base64 para o arquivo pdf em um diretorio no seu servidor.
Quando o usuário solicitar este arquivo, faça a leitura e escreva no outputStream do seu response.

O código no seu controller ficaria mais ou menos assim:
@RequestMapping("/file/{nomeDoArquivo}")
	public void downloadFile(HttpServletResponse response, @PathVariable String nomeDoArquivo) throws IOException {
	    
		
		byte[] file = fileService.getFileByName(nomeDoArquivo);
		
		//Força o download
		response.setContentType("application/octet-stream");
                //Determina o nome do arquivo no download 
		response.addHeader("Content-Disposition", "attachment; filename=\"" + nomeDoArquivo + "\"");
		
		IOUtils.write(file, response.getOutputStream());
	    
	}

É isso ai !!!

abraço!

Criado 17 de novembro de 2012
Ultima resposta 17 de nov. de 2012
Respostas 1
Participantes 2