Upload e Donwload de arquivos JSF + Primefaces + Mysql

0 respostas
jsfprimefacesjava
J

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);
	}
}
Criado 16 de maio de 2017
Respostas 0
Participantes 1