A word of warning with downloading using Window.open, it won't work for IE8 
if your site is running over SSL.  <a href...> works fine.

On Saturday, 13 September 2008 08:48:18 UTC+10, Joe Cole wrote:
>
> Make sure you use the gwt jsni equivalent to; 
>
> var win = Window.open(url, name, options); 
> if ( win ) return true; 
> return false; 
>
> Otherwise you can't detect when popups are blocked. It will save you 
> tons of time in user support if you tell them to enable popups if the 
> window wasn't opened. It amazed me how many users didn't know how to 
> enable this. 
>
> Joe 
>
> On Sep 12, 8:33 pm, Jason Morris <[email protected]> wrote: 
> > I assume what you want is for the client to have a new file on their 
> hard-drive. 
> > First you'll need a servlet that produces the data. I'm not sure what 
> > data-format you want to work with, so I'm gonna assume a plain text file 
> here 
> > (note, this is all typed directly into my mail client, sorry for any 
> mistakes). 
> > 
> > public class MyFileServlet extends HttpServlet { 
> >         protected void doGet(HttpServletRequest req, HttpServletResponse 
> resp) throws 
> > ServletException, IOException { 
> > 
> >                 resp.setContentType("text/plain"); 
> >                 resp.setHeader("Content-Disposition", "attachment; 
> filename=output.txt"); 
> > 
> >                 PrintWriter out = resp.getWriter(); 
> >                 out.println("This is the output content"); 
> >                 out.println("Probably something dynamic should go in 
> here"); 
> >         } 
> > 
> > } 
> > 
> > Then you'll want to write the client side to fetch the file. 
> > 
> > public class MyEntryPoint implements EntryPoint { 
> >         public void onModuleLoad() { 
> >                 String link = GWT.getModuleBaseURL() + 
> "servlet/myfiledownload"; 
> >                 RootPanel.get().add(new HTML("<a href=\"" + link + 
> "\">Download File</a>")); 
> >         } 
> > 
> > } 
> > 
> > You can also use Window.open(link, "downloadWindow", ""); 
> > to download the file from an EventListener. 
> > 
> > Finally you'll need to configure the servlet in either your 
> Module.gwt.xml file 
> > (for hosted mode), or in your web.xml file for web mode. 
> > 
> > Module.gwt.xml example, add: 
> > 
> > <servlet path="/servlet/myfiledownload" 
> > class="your.package.name.here.MyFileServlet" /> 
> > 
> > web.xml add: 
> > 
> > <servlet> 
> >         <servlet-name>MyFileServlet</servlet-name> 
> >         
> <servlet-class>your.package.name.here.MyFileServlet</servlet-class> 
> > </servlet> 
> > 
> > <servlet-mapping> 
> >         <servlet-name>MyFileServlet</servlet-name> 
> >         
> <url-pattern>/your.package.name.here/servlet/myfiledownload</url-pattern> 
> > </servlet-mapping> 
> > 
> > Like I show in the web.xml example, you'll need to make sure that the 
> servlet is 
> > bound to the module base directory (where the nocache.html files all 
> live), and 
> > not next to the host HTML page. Another important factor is: the Servlet 
> must 
> > not be in your "client" package, since the GWT compiler shouldn't get 
> hold of it. 
> > 
> > Hope this helps. 
> > Jason. 
> > 
> > JohnnyGWT wrote: 
> > > I've seen several discussions on how to download a file to the client. 
> > > All contain bits of code but no complete examples. 
> > 
> > > FileUpload is fine & easy using Apache commons stuff. 
> > 
> > > Can someone PLEASE provide some examples etc for downloading a file to 
> > > the client? 
> > > In my scenario I have to send a newly created file to the client. 
> > > Either this is by a download servlet 'get' method or a URL. 
> > 
> > > Any full examples would be greatly appreciated. 
> > 
> > > Thanx in advance

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/qXl7QTOMA7cJ.
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