Pessoal, tenho um banco de dados onde existe uma tabela EMPRESAS que possui um campo logo do tipo blob image no qual registro cada logo. Eu preciso agora jogar este logo na tela, e não tenho a menor idéia de como vou fazer isto ? Alguém tem algum exemplo ? Estou usando como banco de dados o Firebird…não sei se isto implicaria em alguma coisa diferente.
Como jogar campo Blob image na tela
1 Resposta
Uma vez eu tive de fazer algo parecido, em um projeto de web mail por isso nao tenho o codigo mas eh basicamente assim:
o banco era oracle entao os dados estavam no formato long raw, e nao blob, eu fiz um metodo que buscava o imagem e salvava dentro de uma pasta temp na aplicacao, entao por iframe ou refresh na pagina voce atualizava a tag html <img src> para esse novo local temporario coma imagem, que voce restaurou, entao no banco tem que ter a imagem binaria em si, e mais um campo com nome do arquivo…
metodo que busca a imagem do banco era mais ou menos assim
comments:
tempPath eh uma variavel de contexto criada no xml com a localizacao da pasta temporaria do servidor que vai guardar as imagens restauradas.
random eh usado para atualizar o browser no caso de ele manter a imagem em cache e fazer com q o usuario precione f5 duh foi a gambiarra que eu inventei se melhorar me avisa.
public String RestauraImagem(String tempPath){
String diretorio = tempPath + System.getProperty("file.separator") ;
String random = Funcoes.retornaSoNumeros(Double.toString(Math.random()));
String nomeImagem = "";
String sql = "SELECT imgMailing, nomImagem FROM imagens
try{
ResultSet result = getGeralBD().execSQL(sql);
if(result.next()){
if((result.getString("nomImagem") != null) && (!result.getString("nomImagem").equals(""))){
nomeImagem = result.getString("nomImagem");
byte[] image = result.getBytes("imgMailing");
FileOutputStream fos = new FileOutputStream(diretorio + nomeImagem);
fos.write(image);
}
else{
return "";
}
}
}catch(Exception exp){
exp.printStackTrace();
}
return (nomeImagem + random);
}
buenas ervas isso :twisted: