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
[code]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);
}
}[/code]
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