Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
Articles




JSPWiki v2.2.33

[RSS]


Hide Menu

CreateAnAJAXBasedFileuploadProgressbarDialog


This is version 20. It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]



How to Create an AJAX based fileupload progressbar dialog

This HOWTO shows how i combined AJAX Struts File Upload Progress Meter with a custom tweaked version of Lightbox Gone Wild! to create a user friendly upload progress bar dialog with the webpage below faded out. This means that users are unable to click on any links on the website and lets the visual indication of how much is left of the file transfer.

http://raibledesigns.com/wiki/attach/CreateAnAJAXBasedFileuploadProgressbarDialog/AjaxFileTransfer.jpg

Create a struts based Appfuse project

C:\projects\appfuse-1.9.3-src\appfuse>ant new
Buildfile: build.xml

clean:
     [echo] Cleaning build and distribution directories

init:

new:
     [echo]
     [echo] +-------------------------------------------------------------+
     [echo] |    -- Welcome to the AppFuse New Application Wizard! --     |
     [echo] |                                                             |
     [echo] | To create a new application, please answer the following    |
     [echo] | questions.                                                  |
     [echo] +-------------------------------------------------------------+

    [input] What would you like to name your application [myapp]?
progressbar
    [input] What would you like to name your database [mydb]?
progressbar
    [input] What package name would you like to use [org.appfuse]?

    [input] What web framework would you like to use [webwork,tapestry,spring,jsf,struts]?
struts
     [echo] Creating new application named 'progressbar'...
     [copy] Copying 356 files to C:\projects\appfuse-1.9.3-src\progressbar
     [copy] Copying 81 files to C:\projects\appfuse-1.9.3-src\progressbar\extras
     [copy] Copying 1 file to C:\projects\appfuse-1.9.3-src\progressbar
     [copy] Copying 1 file to C:\projects\appfuse-1.9.3-src\progressbar

init:

fixcrlf:
     [echo] Running fixcrlf....
     [echo]
     [echo] +-------------------------------------------------------------+
     [echo] |           -- Application created successfully! --           |
     [echo] |                                                             |
     [echo] | Now you should be able to cd to your application and run:   |
     [echo] | > ant setup test-all                                        |
     [echo] +-------------------------------------------------------------+

BUILD SUCCESSFUL
Total time: 38 seconds
C:\projects\appfuse-1.9.3-src\appfuse>

C:\projects\appfuse-1.9.3-src\appfuse>cd ..

C:\projects\appfuse-1.9.3-src>cd progressbar

C:\projects\appfuse-1.9.3-src\progressbar>

C:\projects\appfuse-1.9.3-src\progressbar>ant setup-tomcat (if not done before. Only needed once)

C:\projects\appfuse-1.9.3-src\progressbar>ant setup-db

C:\projects\appfuse-1.9.3-src\progressbar>ant deploy

Start tomcat and see if it works. Create a user that you can use to login and test the functionality we are going to add.

Install the serverside utility classes

Extract the attached fileupload.zip (see bottom of this page) to < Your project folder >\src\web\org\appfuse\webapp\action

Listing the action folder must be like:

helge@duke /cygdrive/c/projects/appfuse-1.9.3-src/progressbar/src/web/org/appfuse/webapp/action
$ find .
.
./ActionExceptionHandler.java
./BaseAction.java
./fileupload
./fileupload/ExtendedMultiPartRequestHandler.java
./fileupload/FileUploadAction.java
./fileupload/upload
./fileupload/upload/MonitoredDiskFileItem.java
./fileupload/upload/MonitoredDiskFileItemFactory.java
./fileupload/upload/MonitoredOutputStream.java
./fileupload/upload/OutputStreamListener.java
./fileupload/upload/UploadInfo.java
./fileupload/upload/UploadListener.java
./fileupload/upload/UploadMonitor.java
./fileupload/util
./fileupload/util/UploadUtil.java
./PasswordHintAction.java
./ReloadAction.java
./SignupAction.java
./UploadAction.java
./UserAction.java

helge@duke /cygdrive/c/projects/appfuse-1.9.3-src/progressbar/src/web/org/appfuse/webapp/action
$ 

Configure DWR

Edit the file < Your project folder >\web\WEB-INF\dwr.xml so the content becomes:

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
  <!-- enable/disable debug (the http://host/dwr/ thing) where the servlet is mapped in servlets.xml -->  
  <allow>
        <!--create creator="spring" javascript="UserManager">
            <param name="beanName" value="userManager"/>
            <include method="getUsers"/>
        </create>
        <convert converter="bean" match="org.appfuse.model.User"/-->
        <create creator="new" javascript="UploadMonitor">
            <param name="class" value="org.appfuse.webapp.action.fileupload.upload.UploadMonitor"/>
        </create>
        <convert converter="bean" match="org.appfuse.webapp.action.fileupload.upload.UploadInfo"/>
    </allow>
</dwr>

Redeploy the changes with the command:

C:\projects\appfuse-1.9.3-src\progressbar>ant deploy
Restart tomcat

Test DWR

Create css and javascript files

Create the Struts Action

Create the Atruts JSP incliding the form


Attachments:
productivity.jpg Info on productivity.jpg 18309 bytes
FileUploadForm.java Info on FileUploadForm.java 2933 bytes
fileupload-js.zip Info on fileupload-js.zip 40613 bytes
fileupload.zip Info on fileupload.zip 14762 bytes
dwrLightboxFileupload.jpg Info on dwrLightboxFileupload.jpg 112283 bytes
DWRTest.jpg Info on DWRTest.jpg 155595 bytes
AjaxFileTransfer.jpg Info on AjaxFileTransfer.jpg 93101 bytes


Go to top   More info...   Attach file...
This particular version was published on 06-Nov-2006 13:52:56 MST by HelgeTesgaard.