Pessoal, no banco de dados (sql server 2000) da aplicação, criaram o campo foto com o tipo ntext. Preciso saber como faço pra transformar em imagem e mostrar na jsp. Alguém pode me ajudar por favor?
Muuuito obrigada!!! :roll:
Pessoal, no banco de dados (sql server 2000) da aplicação, criaram o campo foto com o tipo ntext. Preciso saber como faço pra transformar em imagem e mostrar na jsp. Alguém pode me ajudar por favor?
Muuuito obrigada!!! :roll:
Alguém poooor favor!!! É urgente…
Oi Bruna,
Vc pode criar um servlet que pega esse valor e escreve ele no outpustream. Não pode esquecer de muda o content type para o tipo da imagem que foi gravada.
[]´s
[quote=davidbuzatto]Oi Bruna,
Vc pode criar um servlet que pega esse valor e escreve ele no outpustream. Não pode esquecer de muda o content type para o tipo da imagem que foi gravada.
[]´s[/quote]
Oi davidbuzatto, muito obrigada pela atenção!
Então, isso eu já havia feito, o que eu não estava conseguindo era converter o Clob ou String para imagem jpg. Mas já consegui!
Fiz assim:
A imagem vem de uma câmera IP, portanto para salvá-la no banco, no cadastro do cara, faço assim:
Utilizo o método abaixo para converter a imagem que eu capturo da câmera em Clob e salvo no banco com setClob:
[color=darkblue]public Clob imageToClob(URL urlCameraAxis) throws IOException, SerialException, SQLException{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(ImageIO.read(imageUrl), "JPG", baos);
byte[] buf = baos.toByteArray();
String s = new sun.misc.BASE64Encoder().encode(buf);
Clob clob = new SerialClob(s.toCharArray());
return clob;
}[/color]
Quando vou recuperar a imagem do banco para mostrar em uma jsp, do retorno do select pego com getClob e na servlet fica da seguinte forma:
[color=darkblue] public void doProcessoUnico(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType(“image/bmp”);
response.setHeader(“Pragma”, “no-cache”);
response.setHeader(“Cache-Control”, “no-cache”);
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
Clob getFoto = null;
/* Recebe a foto no formato Clob */
getFoto = accessDb.getImage(cpf, Integer.parseInt(sequencia));
try {
clobToImage(getFoto,out);
} catch (Exception e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
}[/color]
Método clobToImage
[color= darkblue]public void clobToImage(Clob clobImage, OutputStream out) throws SQLException, IOException{
String strFromClob = clobImage.getSubString(1, (int) clobImage.length());
ByteArrayInputStream byteStream = new ByteArrayInputStream(new sun.misc.BASE64Decoder().decodeBuffer(strFromClob));
ImageIO.write(ImageIO.read(byteStream), "JPG", out);
}
[/color]
Assim funcionou!!!
Bjokas!
Legal Bruna! Que bom que deu certo
[]´s