Albert,

Not sure if you are still stuck on this.. but if you make the following 2
changes this should work for you...

1)  Change 'onInitialize' method to return 'form'.  (It is returning
'vPanel' in your code.)
2)  Add following line:

fileUpload.setName("myFile");

This should work.


On Thu, May 6, 2010 at 11:15 AM, Ajay Chitre <chitre.a...@gmail.com> wrote:

> Adding some more info...
>
>
>
> In the debugger when I set a breakpoint in 'onInitialize' at this line:*
>
> RootPanel.get().add(form); *
>
> the form seems to be built properly as follows:
>
>
> <form method="post" enctype="multipart/form-data" action="
> http://127.0.0.1:8888/showcase/myFormHandler"; target="FormPanel_1"><table
> cellpadding="0" cellspacing="0"><tbody><tr><td style="vertical-align: top;"
> align="left"><div class="gwt-HTML"><b>Select a
> file:</b></div></td></tr><tr><td style="vertical-align: top;"
> align="left"><input id="gwt-debug-cwFileUpload" class="gwt-FileUpload"
> type="file"></td></tr><tr><td style="vertical-align: top;" align="left"><div
> class="gwt-HTML"><br></div></td></tr><tr><td style="vertical-align: top;"
> align="left"><button class="gwt-Button" tabindex="0" type="button">Upload
> File</button></td></tr></tbody></table></form>
>
>
> But under firebug, the form shows up as this...
>
> <form target="FormPanel_1" action="
> http://127.0.0.1:8888/showcase/myFormHandler";
> enctype="multipart/form-data" method="post"></form>
>
> So seems like there's something in the Showcase application framework
> that's causing this.  Any ideas?
>
>
>
>
> On Wed, May 5, 2010 at 8:01 AM, Something Something <
> mailinglist...@gmail.com> wrote:
>
>> Hello,
>>
>> I am writing a GWT application based on the 'Showcase' sample (
>> http://gwt.google.com/samples/Showcase/Showcase.html).  I am trying to
>> get the 'File Upload' feature to work.  I have changed the 'CwFileUpload'
>> class as follows:
>>
>>   public Widget onInitialize() {
>>     // Create a FormPanel and point it at a service.
>> *    final FormPanel form = new FormPanel();*
>>     form.setAction(GWT.getModuleBaseURL() + "*myFormHandler*");
>>
>>     // 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 vertical panel to align the content
>>     VerticalPanel vPanel = new VerticalPanel();
>>     form.setWidget(vPanel);
>>     // Add a label
>>     vPanel.add(new HTML(constants.cwFileUploadSelectFile()));
>>
>>     // Add a file upload widget
>>     final FileUpload fileUpload = new FileUpload();
>>      fileUpload.ensureDebugId("cwFileUpload");
>>     vPanel.add(fileUpload);
>>
>>     // Add a button to upload the file
>>     Button uploadButton = new Button(constants.cwFileUploadButton());
>>     uploadButton.addClickHandler(new ClickHandler() {
>>       public void onClick(ClickEvent event) {
>>         String filename = fileUpload.getFilename();
>>         if (filename.length() == 0) {
>>           Window.alert(constants.cwFileUploadNoFileError());
>>         } else {
>> //          Window.alert(constants.cwFileUploadSuccessful());
>>           form.submit();
>>         }
>>       }
>>     });
>>     vPanel.add(new HTML("<br>"));
>>     vPanel.add(uploadButton);
>>
>>     // Add an event handler to the form.
>>     form.addSubmitHandler(new SubmitHandler() {
>>       @Override
>>       public void onSubmit(SubmitEvent event) {
>>         if (fileUpload.getFilename().length() == 0) {
>>           Window.alert("Must select a valid file");
>>            event.cancel();
>>         }
>>       }
>>     });
>>
>>     form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
>>       public void onSubmitComplete(SubmitCompleteEvent 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());
>>       }
>>     });
>> *    RootPanel.get().add(form);*
>>
>>     // Return the layout panel
>>     return vPanel;
>>   }
>>
>>
>> The code in *MyFormHandler *is given below (Note: This was directly
>> copied from the Google Appengine FAQ page):
>>
>>   public void *doPost*(HttpServletRequest req, HttpServletResponse res)
>>       throws ServletException, IOException {
>>     try {
>>       ServletFileUpload upload = new ServletFileUpload();
>>       res.setContentType("text/plain");
>>
>>       FileItemIterator iterator = upload.getItemIterator(req);
>>       while (iterator.hasNext()) {
>>         // IT NEVER GETS IN THIS LOOP
>>         FileItemStream item = iterator.next();
>>         InputStream stream = item.openStream();
>>
>>         if (item.isFormField()) {
>>           LOG.warning("Got a form field: " + item.getFieldName());
>>         } else {
>>           LOG.warning("Got an uploaded file: " + item.getFieldName() +
>>               ", name = " + item.getName());
>>
>>           // You now have the filename (item.getName() and the
>>           // contents (which you can read from stream).  Here we just
>>           // print them back out to the servlet output stream, but you
>>           // will probably want to do something more interesting (for
>>           // example, wrap them in a Blob and commit them to the
>>           // datastore).
>>           int len;
>>           byte[] buffer = new byte[8192];
>>           while ((len = stream.read(buffer, 0, buffer.length)) != -1) {
>>             res.getOutputStream().write(buffer, 0, len);
>>           }
>>         }
>>       }
>>     } catch (Exception ex) {
>>       throw new ServletException(ex);
>>     }
>>   }
>>
>> When form is submitted, no "FileItems" (meaning form fields) are returned
>> in the Request object.  I have tried moving the FormPanel to Showcase.java
>> and tried several combinations, but nothing is working :(   Any ideas on
>> debugging this further will be greatly appreciated.  Please help.
>>
>> Thank you.
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Google Web Toolkit" group.
>> To post to this group, send email to google-web-tool...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-web-toolkit?hl=en.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to