Insertar imagen en Base de DAtos

Elvis
16 de Febrero del 2004
Hola todos.

Necesito saber el comando o codigo para insertar una imagen en una tabla de mi base de datos. Esta imagen la subi con un upload .


Gracias a todos.

javiair
16 de Febrero del 2004
Que tipo de campo es la base de datos ??

Normalmente se pasa la imagen a binario y se inserta en la BD... investiga por ahí...

un saludo.

Martin Cordova
16 de Febrero del 2004
Por suerte JDBC tiene un buen soporte para el manejo de Blobs (binary large objects) con bases de datos. El codigo que muestro abajo fue extraido del framework Dinamica, te recomiendo que le des un vistazo a Dinamica porque te puede resultar de gran ayuda en tus desarrollos Web con Java, de hecho el manejo de imagenes y documentos tiene soporte especial para hacerlo super facil (chequea la guia del usuario).

Dinamica Framework:
http://www.martincordova.com

El codigo:

/**
* Save binary file to blob column using a prepared statement.<br>
* The prepared statement must contain only one dynamic parameter (?),
* and it must correspond to the BLOB column. Example:<br>
* insert into images (id, title, imgsize, data) values (1,'my image', 8112, ?)
* <br><br>
* This means that the SQL must be pre-processed by your code in order to
* set the static values. GenericTransaction superclass provides the method getSql()
* to help you achieve easy static SQL generation.
* @param sql SQL used to build prepared statement. The blob column will be the only dynamic (?) parameter.
* @param path File to be uploaded into the blob column
* @throws Throwable
*/
public void saveBlob(String sql, String path) throws Throwable
{

/* create buffer to read image data */
File f = new File( path );
FileInputStream img = new FileInputStream(f);
int size = (int)f.length();
BufferedInputStream buf = new BufferedInputStream(img,16000);

/* save image using prepared statement */
PreparedStatement p = null;

try
{
p = _conn.prepareStatement(sql);
p.setBinaryStream(1, buf, size);
p.execute();
}
catch (Throwable e)
{
throw e;
}
finally
{
if (p!=null) p.close();
if (img!=null) img.close();
if (buf!=null) buf.close();
}

}