This worked for me. Thanks.
On Mon, May 10, 2010 at 9:48 AM, Ajay Chitre <[email protected]> wrote:
> 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 <[email protected]>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 <
>> [email protected]> 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 [email protected]
>>> .
>>> To unsubscribe from this group, send email to
>>> [email protected]<google-web-toolkit%[email protected]>
>>> .
>>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-web-toolkit%[email protected]>
> .
> 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 [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.