Monday, March 5, 2012

Re: Upload File

Thanks guys!

Jim, the class is also ClientFileSystemBridge Apache FileUpload?

Thank you!

On 2 mar, 17:49, Alfredo Quiroga-Villamil <laww...@gmail.com> wrote:
> If your backend is Spring they also have great support for this. A few
> lines only and you are up and running.
>
> http://www.ioncannon.net/programming/975/spring-3-file-upload-example/
>
> Best regards,
>
> Alfredo
>
>
>
>
>
>
>
> On Fri, Mar 2, 2012 at 3:45 PM, Thad <thad.humphr...@gmail.com> wrote:
> > I agree with Jim on using Apache FileUpload.
>
> > One trick I occasionally use to simplify my upload processing for text
> > fields is to create a hidden field within the form. Before calling
> > form.submit(), I do whatever validation and format conversions I want and
> > assemble the non-file input into a JSON string that I assign to my hidden
> > field. With this method I can submit values from fields outside of the
> > FormPanel and greater control over the fields inside the panel.
>
> > On Friday, March 2, 2012 2:33:29 PM UTC-5, Jim Douglas wrote:
>
> >> Hi Leonardo,
>
> >> I use Apache FileUpload to manage the process:
>
> >>http://commons.apache.org/**fileupload/<http://commons.apache.org/fileupload/>
>
> >> Here's the doPost() method from my FileUploadServelet:
>
> >>     @Override
> >>     public void doPost(HttpServletRequest p_request,
> >>                        HttpServletResponse p_response)
> >>         throws ServletException, IOException
> >>     {
> >>         ServletFileUpload upload = new ServletFileUpload();
>
> >>         /*
> >>          * This tracks the state of the upload progress. The client
> >> will
> >>          * occasionally request a progress update; the doGet() method
> >>          * returns this information to the client in an XML structure.
> >>          */
> >>         FileUploadProgress progress = new FileUploadProgress();
> >>         HttpSession session = p_request.getSession();
> >>         session.setAttribute("**progress", progress);
> >>         upload.setProgressListener(**progress);
>
> >>         try
> >>         {
> >>             FileItemIterator iter = upload.getItemIterator(p_**request);
> >>             StringBuilder response = new StringBuilder();
> >>             Integer id = null;
> >>             while (iter.hasNext())
> >>             {
> >>                 FileItemStream item = iter.next();
> >>                 String name = item.getFieldName();
> >>                 InputStream stream = item.openStream();
> >>                 if (item.isFormField())
> >>                 {
> >>                     String value = Streams.asString(stream);
> >>                     if ("id".equals(name))
> >>                     {
> >>                         id = Integer.valueOf(value);
> >>                     }
> >>                     if ("saveAs".equals(name))
> >>                     {
> >>                         if (id == null)
> >>                         {
>
> >> p_response.sendError(SC_**INTERNAL_SERVER_ERROR,
> >>                                 "No filesystem id for " + name + " " +
> >> value);
> >>                             return;
> >>                         }
> >>                         File f =
> >> ClientFileSystemBridge.**createTempFile(value);
> >>                         ClientFileSystemBridge.put(id, value, f);
> >>                     }
> >>                     response.append(name).append(' ')
> >>                             .append(value).append('\n');
> >>                 }
> >>                 else
> >>                 {
> >>                     String filename = item.getName();
> >>                     if (id == null)
> >>                     {
> >>                         p_response.sendError(SC_**INTERNAL_SERVER_ERROR,
> >>                             "No filesystem id for file " + filename);
> >>                         return;
> >>                     }
> >>                     File f =
> >> ClientFileSystemBridge.**createTempFile(filename);
> >>                     OutputStream out = new FileOutputStream(f);
> >>                     try
> >>                     {
> >>                         // This WILL fail with
> >> org.mortbay.jetty.EofException
> >>                         // if the client form disappears before we've
> >> read the
> >>                         // entire stream.
> >>                         int bytes;
> >>                         byte buf[] = new byte[32768];
> >>                         while ((bytes = stream.read(buf)) > 0)
> >>                             out.write(buf, 0, bytes);
> >>                     }
> >>                     catch (Throwable t)
> >>                     {
> >>                         p_response.sendError(SC_**INTERNAL_SERVER_ERROR,
> >>                                 t.getClass().getName() + " " +
> >> t.getMessage());
> >>                         t.printStackTrace();
> >>                     }
> >>                     finally
> >>                     {
> >>                         out.close();
> >>                         stream.close();
> >>                     }
> >>                     ClientFileSystemBridge.put(id, filename, f);
> >>                     response.append(name).append(' ').
> >>                              append(f.length()).append(' ').
> >>                              append(filename).append('\n')**;
> >>                 }
> >>             }
> >>             String message = response.toString();
> >>             p_response.reset();
> >>             p_response.setContentType("**text/plain");
> >>             p_response.setContentLength(**message.length());
> >>             Writer writer = p_response.getWriter();
> >>             writer.append(message);
> >>             writer.flush();
> >>         }
> >> //        catch (FileUploadException e)
> >> //        {
> >> //            p_response.sendError(SC_**INTERNAL_SERVER_ERROR,
> >> e.getMessage());
> >> //            e.printStackTrace();
> >> //        }
> >>         catch (Throwable e)
> >>         {
> >>             p_response.sendError(SC_**INTERNAL_SERVER_ERROR,
> >> e.getMessage());
> >>             e.printStackTrace();
> >>         }
> >>     }
>
> >> And a helper function for reporting progress:
>
> >> import org.apache.commons.fileupload.**ProgressListener;
>
> >> public class FileUploadProgress implements ProgressListener
> >> {
> >>     private volatile long m_bytesRead;
> >>     private volatile long m_contentLength;
> >>     private volatile int m_item;
>
> >>     public FileUploadProgress()
> >>     {
> >>         super();
> >>     }
>
> >>     public void update(long p_bytesRead, long p_contentLength, int
> >> p_item)
> >>     {
> >>         m_bytesRead = p_bytesRead;
> >>         m_contentLength = p_contentLength;
> >>         m_item = p_item;
> >>     }
>
> >>     public long getBytesRead()
> >>     {
> >>         return m_bytesRead;
> >>     }
>
> >>     public long getContentLength()
> >>     {
> >>         return m_contentLength;
> >>     }
>
> >>     public int getItem()
> >>     {
> >>         return m_item;
> >>     }
> >> }
>
> >> On Mar 2, 5:26 am, Leonardo Terrão <leonardoter...@gmail.com> wrote:
> >> > Hello everybody!
>
> >> > Following are some examples found right here in the discussion group
> >> > took two classes below.
>
> >> > In my class I have ArquivoUpload umTextBox a form with a ListBox and a
> >> > FileUpload. In class FileUploadServlet're getting only the data from
> >> > the FileUpload. Could someone help me also take the data from the
> >> > TextBox?
> >> > In debug mode I see everything that is in the form of the request but
> >> > I can not extract the values​​.
>
> >> > public class ArquivoUpload implements EntryPoint {
>
> >> >         public static final String UPLOAD_ACTION_URL =
> >> GWT.getModuleBaseURL()
> >> > + "upload";
>
> >> >         @Override
> >> >         public void onModuleLoad() {
>
> >> >                 // Cria um FormPanel e apontá-lo para um serviço.
> >> >                 final FormPanel form = new FormPanel();
> >> >                 form.setAction(UPLOAD_ACTION_**URL);
>
> >> >                 // Porque nós vamos adicionar um widget FileUpload,
> >> vamos precisar
> >> > para
> >> >                 // definir o
> >> >                 // Form usar o método POST, e codificação MIME
> >> multipart.
> >> >                 form.setEncoding(FormPanel.**ENCODING_MULTIPART);
> >> >                 form.setMethod(FormPanel.**METHOD_POST);
>
> >> >                 // Cria um painel para conter todos os elementos do
> >> formulário.
> >> >                 VerticalPanel panel = new VerticalPanel();
> >> >                 form.setWidget(panel);
>
> >> >                 // Criar um TextBox, dando-lhe um nome para que ele
> >> será submetido.
> >> >                 final TextBox tb = new TextBox();
> >> >                 tb.setName("**TextBoxFormElement");
> >> >                 panel.add(tb);
>
> >> >                 // Criar um ListBox, dando-lhe um nome e alguns valores
> >> que devem
> >> > ser
> >> >                 // associados
> >> >                 // Com suas opções.
> >> >                 ListBox lb = new ListBox();
> >> >                 lb.setName("**listBoxFormElement");
> >> >                 lb.addItem("foo", "fooValue");
> >> >                 lb.addItem("bar", "barValue");
> >> >                 lb.addItem("baz", "bazValue");
> >> >                 panel.add(lb);
>
> >> >                 // Criar um widget FileUpload.
> >> >                 final FileUpload upload = new FileUpload();
> >> >                 upload.setName("**uploadFormElement");
> >> >                 panel.add(upload);
>
> >> >                 panel.add(new UploadForm());
>
> >> >                 // Adicionar um botão 'Enviar'.
> >> >                 panel.add(new Button("Submit", new ClickHandler() {
> >> >                         public void onClick(ClickEvent event) {
> >> >                                         form.submit();
> >> >                         }
> >> >                 }));
>
> >> >                 //Adicionar um manipulador de eventos para o formulário.
> >> >                 form.addSubmitHandler(new FormPanel.SubmitHandler() {
>
> >> >                         @Override
> >> >                         public void onSubmit(SubmitEvent event) {
>
> >> >                                 if (upload.getFilename().equals("**"))
> >> {
> >> >                                         event.cancel();
> >> >                                         return;
> >> >                                 }
>
> >> >                                 //Este
>
> ...
>
> mais »

--
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-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment