Thanks a bunch!
--------------------------------------------------
From: "gregor" <[EMAIL PROTECTED]>
Sent: Saturday, November 15, 2008 7:50 AM
To: "Google Web Toolkit" <[email protected]>
Subject: Re: Images from DB
>
> use a standard servlet - it's just a URL as far as the client is
> concerned. Here's an example I found:
>
> // This method is called by the servlet container to process a GET
> request.
> public void doGet(HttpServletRequest req, HttpServletResponse
> resp) throws IOException {
> // Get the absolute path of the image
> ServletContext sc = getServletContext();
> String filename = sc.getRealPath("image.gif");
>
> // Get the MIME type of the image
> String mimeType = sc.getMimeType(filename);
> if (mimeType == null) {
> sc.log("Could not get MIME type of "+filename);
> resp.setStatus
> (HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
> return;
> }
>
> // Set content type
> resp.setContentType(mimeType);
>
> // Set content size
> File file = new File(filename);
> resp.setContentLength((int)file.length());
>
> // Open the file and output streams
> FileInputStream in = new FileInputStream(file);
> OutputStream out = resp.getOutputStream();
>
> // Copy the contents of the file to the output stream
> byte[] buf = new byte[1024];
> int count = 0;
> while ((count = in.read(buf)) >= 0) {
> out.write(buf, 0, count);
> }
> in.close();
> out.close();
> }
>
>
> You need to adapt this to:
>
> 1) Strip the image name from the HttpRequest URL so you can use it to
> build your JDBC query.
> 2) Check your DB docs to see how to get an InputStream (as opposed a
> byte array) out of the ResultSet
> 3) Then you plug this InputStream into the response OutputStream
> instead of the FileInputStream used in the example
> 4) I'm not sure what the significance of the MimeType bit in the
> example is - you might be able to just set this to a constant if it's
> needed
>
> The main idea is that you set up streams piping the image bytes
> directly from your DB out to the client using a small byte buffer (say
> 1024 bytes as in example) in the servlet. This avoids creating big byte
> [] objects on the web server which hammers memory.
>
> regards
> gregor
>
> On Nov 15, 6:52 am, CodeABunch <[EMAIL PROTECTED]> wrote:
>> Greetings.
>>
>> I'm dynamically reading images stored in the DB and I need to render
>> them in the screen
>>
>> The Image Widget reads only static URLs so I need to have the images
>> saved in a temp directory (but still accessible from regular URL).
>>
>> I'm wondering if there is any other "smart" way of doing this. Any
>> light out there?
>>
>> Thanks!
> >
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---