I have extended Doru Theodor Petrescu's patch, so that it uses a MySQL database to log the upload progress data, instead of in a file. Source code and demo available here:
http://www.modphp.org/ftopic324.php
Also, I have a demo and source code for using XAJAX to provide the upload progress bar inline.
Basically, what it is: a patch to the source code of PHP. You must patch the PHP source code and recompile. The patch allows you to define, in apache's httpd.conf file, a MySQL host,user,pass,dbname to log upload data to. Each upload is a new row in the table, this row gets updated over and over again during the upload.
The database needs to have this configuration:
CREATE TABLE `uploadbar` (
`id` varchar(32) NOT NULL default '',
`time_start` int(11) NOT NULL default '0',
`time_last` int(11) NOT NULL default '0',
`speed_average` int(11) NOT NULL default '0',
`speed_last` int(11) NOT NULL default '0',
`bytes_uploaded` int(11) NOT NULL default '0',
`bytes_total` int(11) NOT NULL default '0',
`files_uploaded` int(11) NOT NULL default '0',
`eta` int(11) NOT NULL default '0',
`last_touched` timestamp(14) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
The patched PHP module will then log data to this MySQL table while the upload is occuring. So, while you have one process uploading, you can have another processing checking the contents of the row in this table over and over again, therefore obtaining the status of the upload.
Visit my site for the full details: http://www.modphp.org/ftopic324.php