25/11/2011, 03:41
|
| | 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); |