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, "[email protected]" <[email protected]> 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 <[email protected]> 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, [email protected] < > > > [email protected]> 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
