Download de arquivo vindo com nome errado [+AJUDA]

3 respostas
rollei

Seguinte: tenho um arquivo que esta guardado num banco de dados oracle num campo BLOB. Preciso fazer o usuario fazer o download desse arquivo. Esta quase completo o metodo com um pequeno erro. O arquivo na hora de salvar para a maquina do usuario esta vindo com o nome da pagina jsf na qual o usuario clicou para fazer o download do arquivo. Trecho do codigo a baixo

public void detalharDocumento() {
		Blob blob = documento.getArquivo();
		
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpServletResponse res = (HttpServletResponse) facesContext.getExternalContext().getResponse();

		res.setContentType("application/octet-stream");
		res.setHeader("Pragma", "public");
		res.setHeader("Cache-control", "must-revalidate");
		
		ServletOutputStream sos;
		
		try {
			sos = res.getOutputStream();
			sos.write(blob.getBytes(1, (int) blob.length()));
			sos.flush();
			sos.close();
			
			FacesContext.getCurrentInstance().responseComplete();
		} catch (IOException e) {
			WebUtil.error("Ocorreu um erro na entrada/saída de dados");
			e.printStackTrace();
			throw new ApplicationException(e);
		} catch (SQLException e) {
			WebUtil.error("Ocorreu um erro na consulta.");
			e.printStackTrace();
			throw new ApplicationException(e);
		} catch (NullPointerException e) {
			WebUtil.error("Erro ao baixar o arquivo.");
			e.printStackTrace();
			throw new ApplicationException(e);
		}
	}

eu tenho como recuperar o nome desse arquivo porque tambem esta no banco de dados, como faco para setar o nome desse arquivo antes do usuario fazer o download???

[]'s

3 Respostas

T

Voc"e precisa também setar mais um header - procure por setHeader (“Content-Disposition”, “attachment; filename=”______"") onde _____ é o nome do arquivo de destino (só o nome, sem o diretório, que você não pode ajustar).
\"

rollei

thingol:
Voc"e precisa também setar mais um header - procure por setHeader (“Content-Disposition”, “attachment; filename=”______"") onde _____ é o nome do arquivo de destino (só o nome, sem o diretório, que você não pode ajustar).
\"

Funcionou blz. Vlw tingol

S

Podiam me dar uma ajuda de como fazer uma inserçãoo de um blob no jsf2+primifaces+jdbc +oracle, ou apenas jfs2+jdbc+oracle???

Criado 9 de abril de 2009
Ultima resposta 23 de set. de 2010
Respostas 3
Participantes 3