Tema: Image a File
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/11/2011, 03:41
MartaMad
 
Fecha de Ingreso: julio-2007
Mensajes: 75
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Image a File

Hola a todos,

Os pongo dos soluciones para pasar un campo Image a un bytes[]:

FORMA 1:

File f = new File(tarjeta.getPersona().getPathFicherofoto());
byte [] bytesFoto = new byte[(int) f.length()];

try {
bytesFoto = FileUtils.readFileToByteArray( f );
}
catch (Exception ex) {
log.error("ERROR al pasar la foto a bytes", ex);
}
byte[] fotografia = Base64.encodeBase64(bytesFoto);


FORMA 2:

byte[] fotografia = null;
File fotoFile = new File(tarjeta.getPersona().getPathFicherofoto());
FileInputStream is = new FileInputStream(fotoFile);

// Get the size of the file
long length = fotoFile.length();

// Create the byte array to hold the data
byte[] bytes = new byte[(int) length];

// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
offset += numRead;
}

// Ensure all the bytes have been read in

if (offset < bytes.length) {
log.error("No se puede completar la lectura de la foto:" + fotoFile.getName());
//throw new IOException("Could not completely read file " + fotoFile.getName());
}
// Close the input stream and return bytes
is.close();

fotografia = Base64.encodeBase64(bytes);