Documentation for a historical release of Infusion: 1.3
Please view the Infusion Documentation site for the latest documentation.
If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.

Uploader Technical Overview

Technical Approach to File Uploading

The main goal of the Fluid Uploader project is to work around the rather severe limitations of the standard http file upload service provided by all browsers.

The Fluid team reviewed a number of Flash-based and JAVA-based solutions, but Flash or JAVA-based user interfaces lacked the accessibility and customizability that we required for Fluid. Additionally browser-based JAVA applications presented security warnings to users that were overly scary and off-putting.

The solution we eventually settled on uses a very innovative technique utilizing a small Flash object, with no user-interface of its own, to talk to the user's local file system and the same Flash object to manage the interaction with the server. While the user interface for the Uploader is rendered completely in standard HTML and Javascript giving us much more control over the user experience, and allowing us to use all the standard accessibility techniques to the Uploader that we apply to all our components.

This technique was created by the SWFUpload project (http://www.swfupload.org and http://code.google.com/p/swfupload/), and currently used in a number of production web sites and development libraries, including Flickr and the YUI library.

Using Uploader Locally (with out a server)

In order facilitate page design tasks and simple testing, the Fluid Uploader can be used running from the local file system. The code knows that you're running locally and pretends that it's talking to a server and uploading files. It's kinda cool!

However, to run the code locally you will need to configure Flash to trust the local swf file. To do this:

  1. Open your browser
  2. Browse to:
    http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html
  1. In the Flash Settings panel, click "Edit locations..."
  2. Select "Add location..."
  3. Click "Browse for files..."
  4. Select the swfupload_f9.swf file that is in your local /src/webapp/fluid-components/swfupload/ directory
  5. Restart your browser

Work Still to be Done

  • Integration with the SWFObject Javascript library which will allow better browser and Flash version sniffing
  • Better error handling

Integration Issues

  • Application developers and system integrators must be careful to manage security. (More information to come)

Issues with Flash 10 beta

Since we started to develop the Uploader, Adobe has brought out a beta for the next generation of Flash, Flash 10. Flash 10 no longer allows Javascript to instigate an OS file dialog, essentially breaking the SWFUploader and libraries that use this technique. This was done for security reasons.

The saga can be followed at:

Since many web sites are already using this solution, we expect a work-around or a fix to appear before the release of Flash 10.

Fluid is also looking at other solutions such as Google Gears.