Flash is probably the simplest solution, but it is also the ugliest: as some people on the SWFUpload forum said, Flash support on Linux seems to be crap, and in the end, if possible, you should avoid using it.
So, the following solution uses a combination of server modules + Javascript on the client.
Note
I have already partially answered your ServerFault question .
For simplicity, I suggest you upgrade to Apache or Lighttpd.
( apache/lighttpd mod_uploadprogress) API, Javascript, .
2 ( File Uploader, , ):
AJAX (. )
, , AJAX " IFrame": Javascript- ( ), IFrame IFrame. , Javascript " " .
Javascript , ( ).
- . jqueryUI.
, , Ruby/Sinatra/Haml//Apache.
,