Dynamically Out put a image in Jsp - Mailing list pgsql-jdbc

From Dilan
Subject Dynamically Out put a image in Jsp
Date
Msg-id 200505270137.j4R1bWMh029971@internal.waterfind.com.au
Whole thread Raw
In response to Re: BIGINT <-> java.lang.String auto cast  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-jdbc
Hello,

I'm using psql 8.0.3-RH,
And using hibernate version 2.0.3 mapping,

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


When I upload, use this part of the class:




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>



in JSP


<img src="trasnferImage.html?formId=<%= String.valueOf(formId) %>"
align="absmiddle" border="0">



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

I Think this is something to do with setting up the content type? can some
one help me with how to set it up?

I even check byte compression between before and after saving the data, and
no different between that either, can some one please help regards that or
give me some comments regards the problem.

I even upgrade the database version,

All I want to do is, upload the jpg files to the database then later display
it.

Regards



pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: BIGINT <-> java.lang.String auto cast
Next
From: Habib Seifzadeh
Date:
Subject: CMP Entity bean and Primary key