insertar imágenes en oracle con jsp

cede
12 de Abril del 2005
Hola,

tengo un jsp que recibe un formulario de datos con los campos de nombre, titulo, fecha e imagen.

la imagen es un blob que necesito insertar en oracle. cómo lo puedo hacer??

me han dicho que convertirla en un array de bytes pero no me funciona. si alguien me dice el código completo desde la inserción en oracle hasta su posterior recuperación para mostrar la imagen al usuario, le estaría muy agradecido.

saludos

Xavi
12 de Abril del 2005
Tienes que hacerlo en dos pasos, no te puedo pasar el código pero es algo así...
primer paso:
" insert into prueba_upload"
+ " (id_archivo,name,archivo,fecha_ins) "
+ " values (?,?,?,sysdate)";
st.setString(1,codArchivo);
st.setString(2,nombreCorto(fi.getName()));
// Insertas un BLOB vacio.
st.setObject(3,BLOB.empty_lob());
st.executeUpdate();
segundo paso:
select archivo from prueba_upload where id_archivo = ? FOR UPDATE";
if (rs.next())
{
BLOB blob = (BLOB) rs.getBlob("archivo");
write(blob, fi);
}

....
private static void write( BLOB blob, FileItem tmpFile ) throws Exception {

OutputStream outstream =
blob.getBinaryOutputStream();
int readSize;

readSize = (int)tmpFile.getSize();

int i = 0;
int chunk = readSize;


InputStream fr = tmpFile.getInputStream();

byte [] bbuf = new byte[readSize];
int byteRead;

while ( ((byteRead = fr.read(bbuf,0,chunk) )!= -1) ) {
outstream.write(bbuf, 0, byteRead);

i += byteRead;
}
fr.close();
outstream.close();

}


Suerte!