Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   JAVA (https://www.clubdelphi.com/foros/forumdisplay.php?f=16)
-   -   guardar y mastrar imagenes en una base de datos (https://www.clubdelphi.com/foros/showthread.php?t=32992)

cahosoft 23-06-2006 00:56:49

guardar y mastrar imagenes en una base de datos
 
hola todos como estan...
necesito guardar una imagen en una base de datos desde una aplicacion web echa en java.... y depues de eso mostrala el pagina....

como haga para guardar la imagen en la db...

de ante mano gracias...

epuigdef 23-06-2006 07:12:01

Buenas!

Esto va a depender mucho de la base de datos que utilices.

Yo, en mi caso, estoy utilizando una base de datos DB2 de IBM sobre un AS-400. Lo que hago es no guardar la imagen en base de datos, sino en un fichero que coloco en un directorio del servidor que sea accesible desde fuera.

Entonces en la base de datos sólo necesito el nombre del archivo, y con un <IMG> lo enlazo con el archivo

Edu

OSKR 24-06-2006 20:48:12

epuigdef tiene 99% razón...no guardes objetos q pudieran ser grandes en las tablas si puedes dejarlos afuera, solo haz una referencia a su nombre y ubicación...preferiblemente estandarizada....por ejemplo: Q00001.jpg
De todos modos si necesitas meterla alli o meterla allí y sino pues meterla allí mira este fragmento de lo q actualmente desarrollo:
Código:

if( Error==null)
  { Vector Data;
      byte [] Clave,Head,Mssg;
      /*Cifrado*/
    Data=Cifrado.Cifraos((Encabezado.length() < 256 ? Encabezado : Encabezado.substring(0,256)));
    Clave=(byte[])Data.remove(0); //Obtenemos el valor con el q se cifró: 16 bytes.
    Head= (byte[])Data.remove(0); //Obtenemos el encabezado cifrado: 256 bytes.
    Mssg= Cifrado.Cifraos(Clave,(Contenido.length() < 1024 ? Contenido : Contenido.substring(0,1024)));
    /*Ensamblado*/
    ByteArrayOutputStream _BAOS= new ByteArrayOutputStream();
    DataOutputStream _DOS=new DataOutputStream(_BAOS);
    _DOS.write(Clave);
    _DOS.writeInt(Head.length);
    _DOS.writeInt(Mssg.length);
    _DOS.write(Head);
    _DOS.write(Mssg);
    Calendar Cal= Calendar.getInstance();
    String fecha =(Cal.get(Cal.MONTH)+1)+"/"+Cal.get(Cal.DATE)+"/"+Cal.get(Cal.YEAR)+" "+Cal.get(Cal.HOUR_OF_DAY)+":"+Cal.get(Cal.MINUTE)+":"+Cal.get(Cal.SECOND);
    /*Sentencia*/
    PreparedStatement PS=CC.PS("Insert Into Buzon values("+ID+","+IdA+","+IdB+",'"+fecha+"','0',?)");
    PS.setBytes(1,_BAOS.toByteArray());
    CC.Actualizar(PS);

Mira bien ese ? ahí se pondrá el contenido en bruto (bytes) de lo q qieres ya q si este contiene ' o " podría cerrar la sentencia, en mi caso lo hago para meter un mensaje cifrado al buzón de mensajes con AES128 proveniente del cliente, lo empaqeto y después de preparar la sentencia lo inserto con setBytes donde 1 es el primer ? q se encuentre en la cadena, en tu caso solo lleva la imagen a un vector de bytes y lo insetas así


La franja horaria es GMT +2. Ahora son las 16:29:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi