| From: | "Hugo Gamarra" <hgamarra(at)hacienda(dot)gov(dot)py> | 
|---|---|
| To: | "'PostGreSQL'" <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | RV: Guardar imagen desde java | 
| Date: | 2005-02-02 11:26:53 | 
| Message-ID: | 000601c5091a$1bbc6ba0$ef06000a@SSET.GOV.PY | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
Buenos Días 
Por un problemita con mi suscripción no se si llego mi agradecimiento a
la lista por la ayuda que me dieron
Saludos cordiales,
Hugo Gamarra.
-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)dcc(dot)uchile(dot)cl] 
Enviado el: Lunes, 31 de Enero de 2005 09:42
Para: Hugo Gamarra
Asunto: Re: [pgsql-es-ayuda] Guardar imagen desde java
Por favor suscribete a la lista, y publica tus mensajes desde la misma
cuenta con la que estas suscrito.
Gracias.
On Mon, Jan 31, 2005 at 09:51:33AM -0400, Hugo Gamarra wrote:
> Compañeros muchísimas gracias por sus consejos
> El codigo quedo asi
> Para guardar en la base 
> 
> public void setImagen(String tipImagen, 
>                       int numImagen, 
>                       String path, 
>                       String nomArchivo)throws SQLException {
>         try{
>             File            f = new File(path+nomArchivo);
>             FileInputStream s = new FileInputStream(f);
>             PreparedStatement p = c.prepareStatement("insert into
> imagenes values(?, ?, ?, ?)");
>             p.setString(1, "ICO");
>             p.setInt(2, numImagen);
>             p.setString(3, f.getName());
>             p.setBinaryStream(4, s, (int)f.length());
>             p.executeUpdate();
>             s.close();
>         }
>         catch(Exception e){
>             throw new SQLException( "No se pudo guardar la imagen.\n"
+
> e);
>         }
>     }
> 
> y este es el código con el cual recupero de la Base la imagen
> public ImageIcon getImagen(String tipImagen, 
>                            int numImagen)throws SQLException {
>         PreparedStatement p = c.prepareStatement( "select imagen "
> + 
>                                                   "  from imagenes "
> + 
>                                                   " where tip_imagen =
> ?" +
>                                                   "   and num_imagen =
> ?" );
>         p.setString (1, tipImagen);
>         p.setInt    (2, numImagen);
>         ResultSet r = p.executeQuery();
>         ImageIcon m = new ImageIcon();
>         while (r.next()){
>             byte[] i = null;
>             i = r.getBytes("imagen");
>             m = new ImageIcon(i);
>         }
>         r.close();
>         p.close();
>         return m;
>     }
> 
> Saludos cordiales,
> Hugo Gamarra.
> 
> > -----Mensaje original-----
> > De: Ricardo Fuentes Pereira [mailto:rfuentesp(at)gmail(dot)com]
> > Enviado el: Viernes, 28 de Enero de 2005 11:58
> > Para: Hugo Gamarra
> > Asunto: Re: [pgsql-es-ayuda] Guardar imagen desde java
> > 
> > Hugo Gamarra wrote:
> > 
> > >Buenos Días Compañeros
> > >
> > >Tengo una consulta espero me puedan ayudar,
> > >Estoy queriendo guardar unas imágenes desde java en un campo del
> bytea,
> > >En encontré con este código que esta en documentación del JDBC
> > >---
> > >File file = new File("myimage.gif");
> > >FileInputStream fis = new FileInputStream(file);
> > >PreparedStatement ps = c.prepareStatement("INSERT INTO images
VALUES
> (?,
> > >?)");
> > >ps.setString(1, file.getName());
> > >ps.setBinaryStream(2, fis, file.length());
> > >ps.executeUpdate();
> > >ps.close();
> > >fis.close();
> > >---
> > >pero al tratar de implementarla me lanza el siguiente error
> > >
> > >sistemita/recursos/definiciones.java [261:1]
> > >setBinaryStream(int,java.io.InputStream,int) in
> > >java.sql.PreparedStatement cannot be applied to
> > >(int,java.io.FileInputStream,long)
> > >ps.setBinaryStream(2, fis, file.length());
> > >  ^
> > >1 error
> > >Errors compiling definiciones.
> > >
> > >El problema es que setBinaryStream no acepta como valor un
> > >FileInputStream, pero el InputStream es una clase abstracta
> > >
> > >
> > Me parece que no es por eso, sino mas bien pq la definicion de los
> > parametros es asi:
> > 
> > setBinaryStream(int,java.io.InputStream,int) <----Ojo, un int al
final
> > 
> > y el metodo lenght() devuelve un long.
> > 
> > Podrias hacer un cast y contarnos si pudiste ingresar la imagen.
> > O sea queda asi:
> > ...
> > ps.setBinaryStream(2, fis, (int) file.length());
> > ...
> > 
> > No te olvides de contarnos si pudiste o no.
> > 
> > Saludos
> 
-- 
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"El número de instalaciones de UNIX se ha elevado a 10,
y se espera que este número aumente" (UPM, 1972)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tomas Eroles i Forner | 2005-02-02 12:19:57 | Error fatal | 
| Previous Message | Oswaldo Hernández | 2005-02-02 09:59:45 | Seminario |