Hi,

I will give you my honestly opinion. It seems that you are new on the
subject and I can say that I have a lot of experience on that.

First of all, don't store images on the database :)

It is true that we can do it, but depending of what you are going to
do, the site of your database will be 90% images and 10% data.

The images are always served by httpservers, even if you retrieve it
from the database. So if you store the images in the file system of
your httpserver, there is no need for network usage in case your
database is hosted in a different server.

So, use the database just to store the path of your images. Then in
GWT, retrieve the object or list of objects that contains the path for
your images. Again in GWT, Create an Image object and set the src
property.

That is all you need to do to display the image.

What do you think?

Regards,
José Vicente

On Mar 13, 2:52 am, Itamar Ravid <itamar.ira...@gmail.com> wrote:
> Don't forget however to set the content type on the response to an image of
> some type, otherwise the client's browser will try to download the picture
> rather than display it.
>
> On Fri, Mar 13, 2009 at 2:28 AM, gregor <greg.power...@googlemail.com>wrote:
>
>
>
> > I think Itamar is right, Jack, you should use a standard HttpServlet
> > for this, not GWT-RPC, because this sends the image over to the
> > browser as byte steam, and I don't think RPC can do that.
>
> > First, I take it these are not images used in your UI (like icons
> > etc), 'cos those should go in an ImageBundle. I assume you know that &
> > these images are downloaded as user selections etc.
>
> > 1) Consult your MySQL docs/forum to find out how to obtain an
> > InputStream for the image via JDBC. You want to pass an InputStream
> > back to your image download HttpServlet. You don't want to read out
> > the image bytes yet.
>
> > 2) You write the HttpServlet something like this example (there are
> > lots of others around):
>
> >http://snippets.dzone.com/posts/show/4629
>
> > Notice that the key is a looping read of the InputStream (which you
> > got from MySQL) that writes straight into the HttpServlet's response
> > OutputStream. Notice also it uses a buffer byte[] array. This is so
> > that your web server does not get it's memory clogged up with big
> > image byte arrays - the image bytes just get shunted from the DB
> > straight out to the browser via this buffer. Therefore set this buffer
> > small. Apache tend to use 2048 bytes. I think Oracle prefer 4096. That
> > sort of size for the buffer. Take care to set the response content
> > type so the browser knows what it's dealing with.
>
> > 3) In your client you can set the Image widget's URL to your image
> > download HttpServlet adding a parameter for the image id.
>
> > regards
> > gregor
>
> > On Mar 12, 8:54 pm, "fatjack1...@googlemail.com"
> > <fatjack1...@googlemail.com> wrote:
> > > Hi,
>
> > > I'm not too sure how to implement a HTTPServlet. Does anyone know how
> > > to use images using RPC?
>
> > > Im really stuck on this.
>
> > > On Mar 12, 8:43 pm, Itamar Ravid <itamar.ira...@gmail.com> wrote:
>
> > > > The best way, IMO, is to not use GWT-RPC, but rather implement an
> > > > HttpServlet, that retrieves the data from the database and returns it
> > with
> > > > the appropriate Content-Type in response to a GET http request. Then,
> > you
> > > > simply place an image in your GWT code, with its source being the path
> > to
> > > > the servlet (defined in your web.xml), passing along any parameters
> > required
> > > > - such as the ID of the image in the database.
>
> > > > On Thu, Mar 12, 2009 at 12:59 PM, fatjack1...@googlemail.com <
>
> > > > fatjack1...@googlemail.com> wrote:
>
> > > > > Hi,
>
> > > > > I am new to loading images into GWT from MySQL and am abit lost on
> > the
> > > > > best way to do it.
>
> > > > > I already have my image in the database. How do I retrieve it? I read
> > > > > somewhere that it can just be stored as a String. Is this correct? So
> > > > > my code on the server side would look like:
>
> > > > > //Open database connection
> > > > > dc.openConnection();
> > > > > resultSet = dc.statement.executeQuery(SELECT CategoryImage FROM
> > > > > itemcategory_table WHERE ItemType = 'Test');
>
> > > > >   while(resultSet.next()) {
> > > > >        String test = resultSet.getString(1);
> > > > > }
>
> > > > > dc.closeConnection();
>
> > > > > Or have I got this completely wrong?
>
> > > > > Next, I need to send this over to the client. What is the best way to
> > > > > send an image over from the server to the client and how should it be
> > > > > stored?
>
> > > > > Any help on how to use images would be much appreciated!
>
> > > > > Regards,
> > > > > Jack
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to