Re: JDBC + PostgreSQL + LargeObjects

Поиск
Список
Период
Сортировка
От Paulo Delgado
Тема Re: JDBC + PostgreSQL + LargeObjects
Дата
Msg-id 20020218145953.4926d7ed.pdelgado@pasaportevip.com
обсуждение исходный текст
Ответ на JDBC + PostgreSQL + LargeObjects  (Paulo Delgado <pdelgado@pasaportevip.com>)
Список pgsql-jdbc
oh, i did "View source" and netscape crashed =) (don't have IEplore, linux box only)

On Tue, 19 Feb 2002 06:49:06 +1100
Justin Clift <justin@postgresql.org> wrote:

> Hi Paulo,
>
> From the browser window where you're getting the icon for "not an
> image", do a "View Source" of the .html page.
>
> The way in which web pages work, there's probably an error buried in the
> source code, and the browser isn't showing it to you.
>
> Doesn't always work, but commonly this is the case.
>
> Hope that's helpful.
>
> :-)
>
> Regards and best wishes,
>
> Justin Clift
>
>
> Paulo Delgado wrote:
> >
> > Oh, i don't get an error message, instead, i see on the browser, the icon for a "not an image".
> > I tried to wget it, and the newly downloaded file does not match the size of the original image, and i cannot open
itwith an image viewer. 
> > I used the same SQL sentence using the console (the terminal), and using lo_export, and the exported image is
correctlyexported. 
> >
> > On Mon, 18 Feb 2002 09:44:43 -0800
> > Barry Lind <barry@xythos.com> wrote:
> >
> > > Paulo,
> > >
> > > If you could mention what error you are getting and what version of the
> > > code you are using that would be helpful.
> > >
> > > --Barry
> > >
> > >
> > > Paulo Delgado wrote:
> > > > I'm writing a JSP which instead of generating HTML code, it sends an
> > > > image to the browser. The image is retrieved from the database, where it
> > > > is stored as a BLOB (an OID). I read the docs online, this is the URL:
> > > >
> > > > http://developer.postgresql.org/docs/postgres/jdbc-binary-data.html
> > > >
> > > > And this is the code (still not working)
> > > >
> > > >
> > > >   <%@ page import="java.io.*" %>
> > > >   <%@ page import="java.sql.*" %>
> > > >   <%@ page import="org.postgresql.largeobject.*" %>
> > > >
> > > >   <%
> > > >   response.setContentType("image/jpeg");
> > > >   out.close();
> > > >   ServletOutputStream sos = response.getOutputStream();
> > > >   try
> > > >   {
> > > >     Class.forName("org.postgresql.Driver");
> > > >   }
> > > >   catch(ClassNotFoundException cnfex)
> > > >   {
> > > >     cnfex.printStackTrace();
> > > >   }
> > > >   try
> > > >   {
> > > >     Connection mycon;
> > > >     mycon=
> > > > DriverManager.getConnection("jdbc:postgresql://localhost:5432/database",
> > > > "userid" , "password");
> > > >     mycon.setAutoCommit(false);
> > > >
> > > >     // Get the Large Object Manager to perform operations with
> > > >     LargeObjectManager lobj =
> > > > ((org.postgresql.Connection)mycon).getLargeObjectAPI();
> > > >
> > > >    PreparedStatement ps = mycon.prepareStatement("SELECT pic FROM
> > > > mytable WHERE month='"+request.getParameter("m")+"' AND
> > > > year="+request.getParameter("y"));
> > > >     ResultSet rs = ps.executeQuery();
> > > >     if (rs != null) {
> > > >       while(rs.next()) {
> > > >         //open the large object for reading
> > > >         int oid = rs.getInt(1);
> > > >         LargeObject obj = lobj.open(oid , LargeObjectManager.READ);
> > > >
> > > >         //read the data
> > > >         byte buf[] = new byte[obj.size()];
> > > >         obj.read(buf, 0, obj.size());
> > > >
> > > >         //do something with the data read here
> > > >         response.setContentLength(obj.size());
> > > >         int i=0;
> > > >         for(i=0; i<obj.size() ; i++)
> > > >         {
> > > >           sos.write(buf[i]);
> > > >         }
> > > >         // Close the object
> > > >         obj.close();
> > > >       }
> > > >       rs.close();
> > > >     }
> > > >     ps.close();
> > > >     mycon.close();
> > > >
> > > >
> > > >     }
> > > >     catch(SQLException sqex)
> > > >     {
> > > >     out.println(sqex.toString());
> > > >     }
> > > >     %>
> > > >
> > > >
> > > > the table is created like this:
> > > >
> > > > CREATE TABLE mytable(
> > > >  pic  oid,
> > > >  month  int2  NOT NULL,
> > > >  year  int2  NOT NULL,
> > > >  PRIMARY KEY (month, year)
> > > > );
> > > >
> > > > I've searched all over the docs, asked all over IRC, and still does not
> > > > work. any ideas?
> > > >
> > > >
> > > >
> > > > ---------------------------(end of broadcast)---------------------------
> > > > TIP 4: Don't 'kill -9' the postmaster
> > > >
> > > >
> > >
> > >
> > >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> >
> > http://archives.postgresql.org
>
> --
> "My grandfather once told me that there are two kinds of people: those
> who work and those who take the credit. He told me to try to be in the
> first group; there was less competition there."
>    - Indira Gandhi
>

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Paulo Delgado
Дата:
Сообщение: Re: JDBC + PostgreSQL + LargeObjects
Следующее
От: Justin Clift
Дата:
Сообщение: Re: JDBC + PostgreSQL + LargeObjects