Thank you!  Thank you!  Thank you!

That worked on the first try!!  Much Appreciated!!!

On Oct 20, 12:28 am, Jim Douglas <[email protected]> wrote:
> This is what I'm doing.  YMMV and assorted disclaimers; it's quite
> likely that this can be improved upon.
>
> (1) I generate this place-holder for the file download in my GWT web
> pages:
>
>         out.println("<div id=\"__gwt_downloadFrame\" tabIndex='-1'></
> div>");
>
> (2) To initiate a download from the client side, I do this:
>
>     public static void download(String p_uuid, String p_filename)
>     {
>         String fileDownloadURL = "/fileDownloadServlet"
>                                + "?id=" + p_uuid
>                                + "&filename=" +
> URL.encode(p_filename);
>         Frame fileDownloadFrame = new Frame(fileDownloadURL);
>         fileDownloadFrame.setSize("0px", "0px");
>         fileDownloadFrame.setVisible(false);
>         RootPanel panel = RootPanel.get("__gwt_downloadFrame");
>         while (panel.getWidgetCount() > 0)
>             panel.remove(0);
>         panel.add(fileDownloadFrame);
>     }
>
> (3) The corresponding FileDownloadServlet does this (with unimportant
> details omitted):
>
>     @Override
>     protected void doGet(HttpServletRequest p_request,
>                          HttpServletResponse p_response)
>         throws ServletException, IOException
>     {
>         String filename = p_request.getParameter("filename");
>         if (filename == null)
>         {
>             p_response.sendError(SC_BAD_REQUEST, "Missing filename");
>             return;
>         }
>
>         File file = /* however you choose to go about resolving
> filename */
>
>         long length = file.length();
>         FileInputStream fis = new FileInputStream(file);
>         p_response.addHeader("Content-Disposition",
>                              "attachment; filename=\"" + filename +
> "\"");
>         p_response.setContentType("application/octet-stream");
>         if (length > 0 && length <= Integer.MAX_VALUE);
>             p_response.setContentLength((int)length);
>         ServletOutputStream out = p_response.getOutputStream();
>         p_response.setBufferSize(32768);
>         int bufSize = p_response.getBufferSize();
>         byte[] buffer = new byte[bufSize];
>         BufferedInputStream bis = new BufferedInputStream(fis,
> bufSize);
>         int bytes;
>         while ((bytes = bis.read(buffer, 0, bufSize)) >= 0)
>             out.write(buffer, 0, bytes);
>         bis.close();
>         fis.close();
>         out.flush();
>         out.close();
>     }
>
> That all causes the selected file to be downloaded to the client
> browser in whatever way the browser chooses to handle downloads.
>
> On Oct 19, 8:49 pm, mike b <[email protected]> wrote:
>
> > I have read all the other posts about downloading Excel files and how
> > to do it w/ an IFRAME, with RequestBuilder, and Window.open().
> > However, none of them actually work.  Luckily, I have a working
> > servlet which executes and returns successfully with javascript.
> > However, we'd like to do it all in GWT.  The error message from IE is
> > below.  The Window.open() DOES work with FF, but not with IE.
> > Unfortunately, we must deploy to IE, no options there.
>
> > Situation:
> > GWT 2.0.4  mvp4g 1.2.0
> > Need to download a file to open in Excel.  At this point, its actually
> > a text file, but the MIME type is setup for Excel.
>
> > The servlet has been tested w/ straight java script using
> > "document.body.appendChild(iframe);".  This works like a champ in IE
> > and FF.
>
> > However, when I do "Window.open(url, "_self",null);" in GWT, IE can't
> > download the file.  It throws an error saying...
>
> > "
> > Internet Exploroer cannot download MyFile from localhost
>
> > IE was not able to open this Internet site.  The requests site is
> > either unavailable or cannot be found.  Please try again later.
> > "
>
> > In GWT, I have also tried just using a Frame, adding it to a Panel,
> > and then calling myFrame.setUrl("myUrl");
>
> > This also successfully gets to the servlet, but fails w/ the above
> > error message while trying to "open" the file.
>
> > It seems as if GWT is telling the browser to cancel the download when
> > it pops up.
>
> > Any suggestions?  Any guesses?
>
> > Thanks,
> > mikeb

-- 
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.

Reply via email to