Skip site navigation (1) Skip section navigation (2)

RE: Guardar imagen desde java

From: "Hugo Gamarra" <hgamarra(at)hacienda(dot)gov(dot)py>
To: "'PostGreSQL'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Guardar imagen desde java
Date: 2005-01-31 13:51:33
Message-ID: 000701c5079c$025c8e80$ef06000a@SSET.GOV.PY (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
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 {
        if (c==null){
            throw new SQLException("Para recuperar una imagen la
coneccion no puede ser nula");
        }
        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


pgsql-es-ayuda by date

Next:From: Juan Pablo EspinoDate: 2005-01-31 14:08:04
Subject: Re: Hola a todos de la lista me presento
Previous:From: Ernesto QuiñonesDate: 2005-01-31 13:15:05
Subject: Re: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda]Capaci tación

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group