Very Low Activity

Project Summary

  Analyzed 2 days ago based on code collected 2 days ago.

NEWSFeb 18, 2010: Created mailing list gwtupload@googlegroups.com, http://groups.google.com/group/gwtupload Jan 30, 2010: Version 0.5.6. Nov 19, 2009: Version 0.5.5. Nothing important in gwtupload but some fixes in jsupload and cgi perl script. Oct 23, 2009: Version 0.5.4 released. FileUpload widget can be customized. Oct 11, 2009: Version 0.5.3 released. Server side can be deployed in Google App-engine, and upload listeners and file item factories can be customized. In the client side methods for handling status and cancel events have been added. Sep 19, 2009: Version 0.5.2 released. It fixes some defects and improves the API, log messages and examples. Sep 13, 2009: Version 0.5.1 has been released. It fixes several bugs and adds numerous improvements like cancel uploads. GWTUpload & JSUploadGWTUpload is a library for uploading files to web servers, showing a progress bar with real information about the process (file size, bytes transferred, etc). It uses ajax requests to ask the web server for the upload progress. It has two components written in java, the server side with servlet and utility classes, and the client side that is compiled into javascript using gwt.

JSUpload is the same client library but compiled and exported into javascript, so users that don't develop in java can use it directly in web pages. I've written an article describing the technique used to do this. JSUpload provides a server program coded in perl that can be installed in any web server as a cgi-bin script.

GoalsBoth the client and server sides, are easy to use just writing a few lines of code. The server side could be implemented in any language. The client side can be used from gwt applications, or from javascript without knowing gwt. There are available widgets for multiple and single uploads It works in any browser with js enabled, and it doesn't need any plugin installed like flash or gears. The provided widgets are ready to use, in the sense that they come with a set of configured styles. The user can customize the provided progress bars, or implement his own. The user can configure customized functions for onChange, onStart and onFinish events All the components are documented. Ajax Upload vs. Swf Uploadswfupload not only needs flash, but also specific versions of it. swfupload's behavior is different for different combination of OS, browser and flash. swfupload is very unstable, some times hungs the browser, some times is unable to update the progress bar. swfupload doesn't work fine in linux With swfupload you need to produce javascript to detect OS, browser and flash versions in order degradate the application and use the traditional way. swfupload doesn't send user cookies. swfupload doesn't use the browser proxy configuration swfupload doesn't work with secure servers (https) gwtupload needs server side code to update progress bar. gwtupload is not cross-domain, yet. gwtupload doesn't support selecting multiple files.

How does it work.The browser renders a form with a file input and a hidden iframe. Once the user selects a file (automatically or pushing a submit button) the browser asks the server for a session cookie using an ajax request, and submits the form. The server starts the reception and continuously updates a session object with the process information. While the file is being uploaded, the browser asks periodically the server for the progress status using ajax. It is possible since most browsers can open two simultaneous connections to the same server. The server responds with a simple xml document with the real information about the size of the file and the amount of data transferred, or with an error message. The client parses the response, calculates percentage, speed, remaining time, and updates a progress bar widget with this information. Finally when the form has been completely sent, the server response is written in the iframe, instead of the main document. In the case of any error, the client shows a message to the user. The client code executes customisable methods when the file input changes, the upload process starts and finishes. It is possible to cancel the file while it is being transfered. Because of the impossibility to cancel an active upload in the client side, the browser sends an ajax request to the server, and the server closes the socket. UsageFor developing using gwt, read the Getting Started guide and the library API documentation To use the library from javascript read the JSUpload documentation Take a look to these demos All javadocs, including examples and exportable java classes, are here To-dosI'm planing to develop a Rails plugin soon. Also I'd like to support swfupload and be able to automatically switch the mode when the user's environment is adequate for it. Contributors writing code or plugins in other languages or frameworks are welcome. ScreenshotsMuptiple Uploader using provided progress-bar
Muptiple Uploader using GWTChismes progress-bar
Muptiple Uploader using Incubator progress-bar
Single uploader with a modal progress-bar

©2009 Manolo Carrasco Moñino

Share

In a Nutshell, gwtupload...

Languages

HTML
82%
Java
9%
7 Other
9%
 
 

Lines of Code

 

Activity

30 Day Summary Apr 22 2013 — May 22 2013

12 Month Summary May 22 2012 — May 22 2013

  • 26 Commits Down -9 (25%) from previous 12 months
  • 1 Contributors Down 0 (0%) from previous 12 months

Community

Ratings

1 user rates this project:
4.0
   
4.0/5.0
 
Click to add your rating
 
Review this Project!
 
 
 

Creative Commons License Copyright © 2013 Black Duck Software, Inc. and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a Creative Commons Attribution 3.0 Unported License . Ohloh ® and the Ohloh logo are trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.