mostrar imagen en servlet

jose
07 de Marzo del 2005
Muy buenas a todos. Tengo un problemilla. Os lo expongo a ver si alguien me puede echar una mano.
Al recuperar una imagen de una campo Blob de Oracle lo paso a array de bytes y posteriormente a String con new String(byte[] imagen) para poder meterlo en un nodo de un XmlDocument. El problema surge cuando al coger ese Strin y hacerle un getBytes, lo que me devuelve (que debía ser igual al array de bytes original) debe perder algo por el camino porque si intento mostrar la imagen desde un servlet la imagen no se muestra.
La imagen originariamente en un jfif y en el ContentType del servlet he probado con (application/xfiller) y con (imagen/jpeg). Aunque el problema creoq que viene al pasarlo de byte[] a String y posteriormente de String a byte[] con el getBytes. Os paso el código a ver si me podéis ayudar:

byte[] cadenaBytes = null;
if (registro.get("imagen") != null){
cadenaBytes = (byte[]) registro.get"imagen");
}
cadena = new String(cadenaBytes);

Despues meto "cadena" en un nodo de un XmlDocument y cuando recupero esa cadena y le hago el getBytes, el array de bytes parece noser correcto porque no consigo mostrar la imagen.
¿Algún consejo?
Muchísimas gracias por adelantado

nkpevfqy
07 de Marzo del 2005
Si conviertes un byte[] a un String, pudiendo ser byte[] cualquier caracter, vas a tener muchos problemas con los caracteres "raros", reservados y demas. Te aconsejo que transformes el byte[] a String con alguna de las codificaciones tipicas: Base64, UUencode, hex, ... para que el String solo contenga caracteres ascii y pueda ser tratado sin problemas.