Como recuperar o nome do arquivo salvo como BLOB do banco de dados e exibir na tela? Estou usando um laço de repetição, para recuperar, o valo salvo na coluna do banco de dados, porem retorna valores de memória ([B@2248bd40):[![inserir a descrição da imagem aqui]1]1
Outra inconsistência, que está ocorrendo é: Quando o usuário realiza o Upload para o banco de dados, o arquivo é salvo com sucesso(qualquer arquivo), porem para executar o donwload devo informar o código, e só permite a saída do arquivo na extensão formatada no código fonte (Exemplo: pdf, doc, etc). O problema é, que só vai sair de acordo com a extensão definida. Tem alguma forma de executar o donwload do arquivo em formato original, que foi salvo?
Segue o método:
public void download() {
ResultSet rs;
try {
Connection con = Conexao.getConnection();
PreparedStatement st = con.prepareStatement("SELECT image FROM uploadfile WHERE codigo = (?) ");
st.setInt(1, codigo);
rs = st.executeQuery();
while (rs.next()) {
InputStream stream = rs.getBinaryStream("image");
file = new DefaultStreamedContent(stream, "image/jpg", "Arquivo.pdf");
}
con.close();
FacesMessage message = new FacesMessage("Exito", " File descarregado com sucesso.");
FacesContext.getCurrentInstance().addMessage(null, message);
} catch (Exception erro) {
erro.printStackTrace();
FacesMessage message = new FacesMessage("Erro ao executar download.");
FacesContext.getCurrentInstance().addMessage(null, message);
}
}