Re: Saving currupting binary data into the database when saving a image into the database

From: "Dilan" <dilan(at)waterfind(dot)com(dot)au>
To: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Saving currupting binary data into the database when saving a image into the database
Date: 2005-05-17 00:38:19
Message-ID: 200505170036.j4H0aJGB000427@internal.waterfind.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello,

I'm using hibernate to connect postgresql via java, and I'm trying to save a
image as a binary file,

Using the ..

When I upload:
..

UploadTransferForm uForm = (UploadTransferForm)
form;

int size=uForm.getFileUpload().getFileSize();

byte[] byteArr = new byte[size];

ActionErrors errors = new ActionErrors();

try {

//Create an input stream to
read the uploaded file.

ByteArrayInputStream bytein
= new ByteArrayInputStream(uForm.getFileUpload().getFileData());

// Load the input stream
into the byte Array.

bytein.read(byteArr);

// Close the input stream.

bytein.close();

// Load the byte[] into the
content field.

uForm.setContent(byteArr);

} catch (Exception e) {

logger.error("Error adding image to the
database", e);

}

Session sess = null;

AuthorityApprovalForms af = new
AuthorityApprovalForms();

try {

sess =
Waterfind.getSessionFactory().openSession();

} catch (net.sf.hibernate.HibernateException e) {

logger.error("Error opening hibernate
session", e);

}

try {

af.setImg(byteArr);

sess.save(af);

sess.flush();

} catch (Exception e) {

..

when i diplaying it

try {

AuthorityApprovalForms af = new
AuthorityApprovalForms();

Long formId = new
Long(request.getParameter("formId"));

af =
AuthorityApprovalForms.getFormById(formId);

byte pic[] = af.getImg();

OutputStream out =
response.getOutputStream();

out.write( pic );

} catch (IOException e) {

logger.error("Error opening file
region", e);

}

I have save the data into the database via hibernate-mapping as binary

<hibernate-mapping>

<class name="com.admin.AuthorityApprovalForms"
table="AUTHORITY_APPROVAL_FORMS">

<id name="id" type="long">

<generator class="native"/>

</id>

<many-to-one name="OfferId"
class="com.admin.core.Offer">

<column name="offer_id"/>

</many-to-one>

<property name="name" type="string"/>

<property name="type" type="string"/>

<property name="img" type="binary"/>

</class>

</hibernate-mapping>

However, when jpg is displaying, it appear to be corrupted, with green and
black back ground (similar to missing layers).

I think, when saving the binary data to the database, it try to convert
binary data to different format, is there is a way to fix this or any other
reason behind it?

Can some one please help

Regards,

Dilan

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Weiping 2005-05-17 01:15:10 Simplified Chinese translation of po file
Previous Message sumit shah 2005-05-13 15:20:50 Arrays Was (Re: ERROR in 8.0 driver, but not 7.4: SELECT DISTINCT, ORDER BY expressions must appear in select list)