Java – how to use GWT when downloading files using servlet?
I'm creating a simple project that allows me to upload and download files using GWT I can't download files from my server
For uploading files, I used http://code.google.com/p/gwtupload/ , then follow the instructions My files are stored in the website container outside the server (on the hard disk),
Now, when it comes to downloading files, I want the user to press a download button and any currently selected items will be downloaded I really don't know what to do
I know I need a servlet to download
public class DownloadAttachmentServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException { // TODO Auto-generated method stub super.doGet(req,resp); } @Override protected void doGet(HttpServletRequest req,IOException { String fileName = (String) req.getSession().getAttribute("fileName"); YFUser user = (YFUser) req.getSession().getAttribute(TestServiceImpl.SESSION_USER); if (user == null) throw new ServletException("Invalid Session"); InputStream in = null; OutputStream out = resp.getOutputStream(); FileInputStream fIn = new FileInputStream(fileName); byte[] buffer = new byte[4096]; int length; while ((length = in.read(buffer)) > 0){ out.write(buffer,length); } in.close(); out.flush(); } }
For now, I'll pass a filename string to retrieve the file for testing
Now that I've lost what to do on the client, I have a simple
public class DownloadFilePanel extends Composite { public DownloadFilePanel(final YFUser user,final String fileName){ final Element downloadIframe = RootPanel.get("__download").getElement(); VerticalPanel content = new VerticalPanel(); content.add(new Label("Download For this File : " + fileName)); Button button = new Button("Download"); button.addClickHandler(new ClickHandler(){ @Override public void onClick(ClickEvent event) { // i do not kNow what to do here }); content.add(button); initWidget(content); } }
The above is a simple widget that will provide a panel that allows you to download files based on filename
As mentioned above, I don't know what to do to download the file
Can anyone point me in the right direction?
Solution
On the client side, just create a regular < a href = "path / to / servlet" > tag If you want to create an anchor class dynamically, you can use the anchor class When the user clicks the link, the browser will automatically download the file