Abrir Janela com a Opção de Salvar ou Abrir

0 respostas
leod

Boa Tarde a Todos,

Estou com um problema que não considero muito, mas ja esta enchendo…é o seguinte uso uma API para gerar um .PDF, ele gera, tudo certo eu consigo abrir e tudo mais, mas agora, quero gerar um relatorio dinamicamente em uma aplicação WEB, faço as consultas, e preencho o Relatori normalmente, mas gostaria de saber com fazer para quando o cara submeter a pagina e eu mandar para uma outra pagina, como fazer para abrir aquela janela que tem as opções de salvar, abrir ou cancelar o download, como fazer??

Aqui esta meu codigo:

package intranet.portalcred.implantacao.command;

import intranet.portalcred.bean.User;
import intranet.portalcred.factory.AbstractCommand;
import intranet.portalcred.implantacao.facade.GenerateRalatorioImpFacade;

import java.io.ByteArrayOutputStream;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class GenerateRelatorioImpCommand implements AbstractCommand{
	
	public void execute(HttpServletRequest req,HttpServletResponse res, ServletContext context){
		GenerateRalatorioImpFacade grFacade = new GenerateRalatorioImpFacade();
		
		User user = new User();
		
		user.setVisitId(req.getParameter("Vid").replace("|",""));
		user.setPrestId(req.getParameter("Pid"));
		
		user.setPath(context.getRealPath("/"));
		
		user = grFacade.GenerateRelatorioImp(user);	
				
		try{
			 res.setHeader("Content-disposition", "attachment;filename=\""+user.getFile()+"\"); 
			 // aqui ira abrir a janela do tipo abrir ou salvar... caso queira abrir direto na pagina eh soh comentar essa linha
			 res.setContentType("application/pdf"); 
			 
			RequestDispatcher dispatcher = context.getRequestDispatcher("/Visualiza_visita.html?Pid="+user.getPrestId()+"&Action=implantacao.command.VisualizaVisita"); 
			dispatcher.forward(req,res);
			}catch(Exception e){
				e.printStackTrace();
			}
	}

}

user.getFile() "Aqui é devolvido o nome do arquivo tipo ’ 2005_10_08_leod.pdf’ "

Então ele abre a janela mas não consigo abrir o arquivo da um erro estranho:

Adobe Reader could not open 2005_10_08_leod.pdf because it is either not a supported file type or because the file has been damaged (for example, it was sent as an email attachment and wasn’t correctly decoded).

Esse é o erro no Adobe.

Eu não sei como fazer ele saber qual o arquivo ele tem que mandar para o browser, pq o arquivo não esta na pasta atual da aplicação esta dentro do servidor em uma outra pasta como faço para “indicar” esse arquivo gerado.

Muito Obrigado pela Atenção.

Leonardo

Criado 12 de agosto de 2005
Respostas 0
Participantes 1