| From: | Barry Lind <blind(at)xythos(dot)com> | 
|---|---|
| To: | Uwe Kubosch <donv(at)crusaders(dot)no> | 
| Cc: | pgsql-jdbc(at)postgresql(dot)org | 
| Subject: | Re: binary data | 
| Date: | 2003-03-03 03:35:25 | 
| Message-ID: | 3E62CD7D.5000303@xythos.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
Uwe,
Can you submit a test case that demonstrates the problem?  I use the 
bytea type in my apps without problems, so there must be something 
different about how you are doing this.
thanks,
--Barry
Uwe Kubosch wrote:
> Hi all!
> 
> I'm trying to store image data in a postgresql 7.3.2 data using the 7.3.2
> jdbc3 drivers.  The table "tfile" contains an integer field "id" and a bytea
> field "content".
> 
> I store the image with code similar to this:
> 
>   InputStream is;
>   PreparedStatement statement;
>   int rowsAffected;
> 
>   is = new FileInputStream("image.png");
>   statement = getConnection().prepareStatement("UPDATE tfile SET content=?
> WHERE id=4");
>   getConnection().setAutoCommit(false);
>   statement.setBinaryStream(1, is, MAX_FILE_SIZE);
>   rowsAffected = statement.executeUpdate();
>   getConnection().commit();
>   getConnection().setAutoCommit(true);
>   is.close();
> }
> 
> This works fine, and the size of the "content" field in the database is
> equal to the size of the file, 4342 bytes.
> 
> I fetch the image back from the database with code similar to this:
> 
> String query;
> ResultSet resultSet;
> 
> query = "SELECT content FROM tfile WHERE id=4";
> resultSet = null;
> 
> try {
>   boolean more;
> 
>   resultSet = executeTheQuery(query);
>   more = resultSet.next();
> 
>   if (more) {
>     InputStream is;
> 
>     is = resultSet.getBinaryStream("content");
>     setContent(is);
>   }
> } catch (SQLException anSQLException) {
> }
> 
> I've read and re-read the documentation, and this should work.  However,
> checking the size of the content InputStream shows that the size is 5527
> bytes instead of 4342.  Doing a compare with the original image reveals what
> seems like unicode character sequences.  For example "å" is replaced with
> "Ã¥".
> 
> Is this correct behaviour?  Must I convert binary data from a bytea field?
> 
> If I have missed something obvious, I apologize, but I hope someone can help
> me, please.  Any help is greatly appreciated.
> 
> 
> With kind regards,
> Uwe Kubosch
> 
> _________________________________________
> Uwe Kubosch
> Adviser eCommerce
> ICQ#: 71437007
> More ways to contact me: http://wwp.icq.com/71437007
> _________________________________________
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
> 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dirk Bromberg | 2003-03-03 06:45:42 | Re: Connection Pool | 
| Previous Message | Rafal Kedziorski | 2003-03-02 19:55:40 | Re: Connection Pool |