You can use gwtupload widget which works without a form:http://code.google.com/p/gwtupload/
--
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/-/oHIgm4CUufsJ.
To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Here is how I doing upload. Use Apache commons on the server and the code below should work. Let me know if you have problems
-Sergey
Â
Web.xml
 <servlet>
              <servlet-name>fileuploadpackage</servlet-name>
              <servlet-class>
              com.yourcompany.server.FileUploadPackage</servlet-class>
 </servlet>
Â
Client
package com.yourcompany.client;
Â
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormHandler;
import com.google.gwt.user.client.ui.FormSubmitEvent;
import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.Window;
Â
/**
* @author Sergey Armishev
*/
public class uploadForm extends DialogBox {
Â
     public uploadForm() {
           super(true,false);
        // Create a FormPanel and point it at a service.
        final FormPanel form = new FormPanel();
        form.setAction(GWT.getModuleBaseURL() + "FileUpload");
Â
        // Because we're going to add a FileUpload widget, we'll need to set the
        // form to use the POST method, and multipart MIME encoding.
        form.setEncoding(FormPanel.ENCODING_MULTIPART);
        form.setMethod(FormPanel.METHOD_POST);
Â
        // Create a panel to hold all of the form widgets.
        VerticalPanel panel = new VerticalPanel();
        form.setWidget(panel);
Â
   // Create a FileUpload widget.
        FileUpload upload = new FileUpload();
        upload.setName("FileUpload");
        panel.add(upload);
Â
        // Add a 'submit' button.
        panel.add(new Button("Submit", new ClickListener() {
          public void onClick(Widget sender) {
            form.submit();
          }
        }));
        panel.add(new Button("Cancel", new ClickListener() {
                public void onClick(Widget sender) {
                 closeDlg();
                }
              }));
        form.addFormHandler(new FormHandler() {
            public void onSubmit(FormSubmitEvent event) {
            }
Â
            public void onSubmitComplete(FormSubmitCompleteEvent event) {
              // When the form submission is successfully completed, this event is
              // fired. Assuming the service returned a response of type text/html,
              // we can get the result text here (see the FormPanel documentation for
              // further explanation).
              Window.alert(event.getResults());
              closeDlg();
            }
          });
        this.setText("new image File");
        setWidget(form);
     }
     void closeDlg() {
           hide();
     }
}
Â
On the server
package com.yourcompany.server;
Â
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.util.*;
import java.util.List;
import java.util.Iterator;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
Â
Â
public class FileUpload extends HttpServlet {
     File file;
     public FileUpload() {
     }
     /**
     *
      * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     * @Override
     */
     public void doPost(HttpServletRequest request, HttpServletResponse response)
                 throws ServletException, IOException {
Â
           response.setContentType("text/html");
           response.setCharacterEncoding("UTF-8");
Â
           FileItem uploadItem = getFileItem(request);
Â
           if (uploadItem == null) {
                 response.getWriter().write("File not uploaded  correctly");
                 return;
           }
Â
           // save the file to disk
Â
           file = saveFile(uploadItem);
Â
           if (file == null) {
                 response.getWriter().write("File upload error");
                 return;
           }
     }
     /**
     * Return the first FileItem of a HTTPServletRequest
     *
      * @param request
     *           The HTTPServletRequest for a file upload operation
     * @return The first file of the file upload request
     */
     @SuppressWarnings("unchecked")
     protected FileItem getFileItem(HttpServletRequest request) {
Â
           FileItemFactory factory = new DiskFileItemFactory();
           ServletFileUpload upload = new ServletFileUpload(factory);
Â
           try {
                 List<FileItem> items = upload.parseRequest(request);
                 Iterator<FileItem> it = items.iterator();
                 FileItem item = (FileItem) it.next();
                 return item;
           }
Â
           catch (FileUploadException e) {
                 e.printStackTrace();
                 return null;
           }
     }
Â
     /**
     * Save a file on a directory of the server.
     *
      * @param item
     *           file to save
     * @param sc
     *           Servlet context
     * @return error code
     */
     public File saveFile(FileItem fileItem) {
Â
           try {
                 String name = fileItem.getName();
                 int index = name.lastIndexOf("/");
                 if(index > 0) {
                       name = name.substring(index);
                 } else {
                       index = name.lastIndexOf("\\");
                       if(index > 0) {
                             name = name.substring(index);
                       }
                 }
                 File file = new File("./" + name);
                 System.out.println("Saved to a file:" + file.getAbsolutePath());
                 fileItem.write(file);
                 return file;
           }
Â
           catch (Exception e) {
                 e.printStackTrace();
                 return null;
           }
     }
Â
}
Â
Â
Class FileUploadPackage
package com.yourcompany.server;
Â
import java.io.File;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
Â
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Â
import org.apache.commons.fileupload.FileItem;
/**
* @author Sergey Armishev
*/
public class FileUploadPackage extends FileUpload{
     public void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
           response.setContentType("text/html");
           response.setCharacterEncoding("UTF-8");
Â
           FileItem uploadItem = getFileItem(request);
Â
           if (uploadItem == null) {
                 response.getWriter().write("File not uploaded  correctly");
                 return;
           }
Â
           // save the file to disk
Â
           file = saveFile(uploadItem);
          //now file is in place
           if(file == null)
                 return;
          Â
           BufferedInputStream stream = new BufferedInputStream(new FileInputStream(file));
           try {
           array = Package.LoadContent(stream);
           } catch(Throwable ex) {
                 ex.printStackTrace();
           }
    String ret;
    if(array == null)
          ret = "Failed to read file";
    else
          ret = array.toString();
    System.out.println("Response:\n" + ret);
           setNoCahs(response);
     }
     private void setNoCahs(HttpServletResponse response) {
           //<% Response.CacheControl = "no-cache" %>
           //<% Response.AddHeader "Pragma", "no-cache" %>
           //<% Response.Expires = -1 %>
           response.setHeader("CacheControl", "no-cache");
           response.setHeader("Pragma", "no-cache");
           response.setHeader("Expires", "-1");