Blog Posts

Upload Progress Meter for Windows - The next take

The uploadprogress extension for PHP never really worked on Windows and since I don't have a Windows development environment I could never do a proper analysis of the problem. Until this week, when Tomas Holusa sent me an email telling me about some VCWD_RENAME problems on Windows. I digged a little bit deeper and found this patch commited by Pierre 10 months ago to the PHP 5.3 branch. This confirmed the problem that if the target file already exists, VCWD_RENAME fails on Windows (but works on unixy systems). Writing a patch for that problem was then easy and according to Tomas, the extension finally works on Windows.

If you want to try it out, Pierre was so kind to compile the latest CVS snapshots for PHP 5.2: or (or search for it at More feedback of running this on Windows would be appreciated, then I can finally release uploadprogress 1.0.0 and mark it as "stable" :)

Btw, I still owe you a "Caveats with Upload Progress Meter" for the most common problems with the extensions. I didn't forget that and can hopefully post it soon.

Update: Fixed the link to point to the 1.0.0 DLLs

Related Entries:
- Upload Progress Meter 1.0.1 released
- Upload Progress Meter - Common issues and some answers
- Upload Progress Meter extension 0.9.2 released
- Upload Progress Meter for Windows
- Upload Progress Meter finally in PECL

About the author

Comments [47]

Ken Petri, 17.03.2009 00:08 CEST

Interested in trying this out but the links to the zip files are broken....

Ken Petri, 17.03.2009 06:28 CEST

Chregu, 17.03.2009 07:26 CEST

Ken: Thanks for the hint, I adjusted the post

Anuga, 22.03.2009 03:52 CEST

Still not working for me.
Windows Server 2003
PHP 5.2.8 / Uploadprogress 1.0.0
Apache 2.2.11

XerraX, 13.05.2009 23:37 CEST

We experience the same problem. It does not show the progress.

Roula, 24.05.2009 07:45 CEST

me too :(
i'm on windows with appserv and my phpinfo says my extensions directory is C:AppServphp5ext i put the dll there and it's not working as well as the ffmpeg dll after i've done all the settings and restarted few times...
i'm gona restart my whole laptop and see if it works

Digby, 09.06.2009 14:53 CEST

Thanks Christian. It works for me:)

I am Running Vista SP2, Apache/2.2.11 (Win32) PHP/5.2.8, Drupal 6.12.



Domen, 19.07.2009 14:16 CEST


Is any possible run this under PHP 5.3?


Chregu, 19.07.2009 16:42 CEST

As soon as Pierre has the time to compile the extension for 5.3, it will be available here

Willie, 17.08.2009 03:46 CEST

Does this work on IIS?

Chregu, 17.08.2009 08:30 CEST

Willie: Theoretically it could also work on IIS, but I didn't here from anyone trying that.

Willie, 17.08.2009 16:23 CEST

just so anyone wants to know, it works on IIS :)

Chregu, 17.08.2009 16:25 CEST

Great to hear, thanks for your feedback, Willie

Basdub, 20.08.2009 21:49 CEST

I run Apache 2.2.6 and php 5.2.5 on Windows using WAMP.

When i restart my web server, the php_ error.log file contains:

PHP Warning: PHP Startup: uploadprogress: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
in Unknown on line 0

So it seems to be related to thread-safety=0

Basdub, 20.08.2009 22:12 CEST

Yes of course nts for non-thread-safe and then... just above there was the thread-safe version... on Pierre's link The module is loaded properly as expected

Thanks I will test it right away!

Basdub, 20.08.2009 22:52 CEST

still returns null. no info about the progress.

Is there a prefix to the key when calling uploadprogress_get_info like
uploadprogress_get_info('upt_' . $key);

No offense, but apc, on the other hand, is working. It is disabled when doing test with uploadprogress.


Vickey, 04.09.2009 15:38 CEST


I am trying this extension on wapm2.0.f(php 5.2.8, Apache 2.2.11) but I couldn't make it wotk. I have added php_uploadprogress.dll in extension folder and I can view information about it in phpinfo(); but still it is not workinc. I have also checked php_error log but I couldn't find any informaation. Can anybody help me to figure out the problem.

Max, 30.10.2009 23:30 CEST

I have the same problem, sometimes it returns null, otherwise "Failed to load source for: ">http://localhost..."


Milos, 04.11.2009 09:34 CEST

Thanks ! works for me - I have Zend CE and it works like a charm.

Gavin, 24.11.2009 18:28 CEST

I've got this working with
Windows XP
Apache 2.0.63

you need to add this to the PHP.INI
uploadprogress.file.contents_template = c:/temp/upload_contents_%s
uploadprogress.file.filename_template = c:/temp/upt_%s.txt

default is for a unix machine /tmp/

Veli Akcakaya, 09.04.2010 10:57 CEST

i downloaded and copy it in the
Then i added below lines in the php.ini

uploadprogress.file.contents_template = /www/tmp
uploadprogress.file.filename_template = /www/tmp

But it doesnt work and says

"PHP startup: uploadprogress: Unable to initialize module compiled with build ID=API20090626,TS,VC9 PHP compiled with build ID=API20090626,TS,VC6 These options need to match."

Do you have any suggestion?


Sebastien, 09.04.2010 17:33 CEST

There's a version compiled with VC6 on the page mentioned above

Ben, 08.07.2010 21:17 CEST

Was anyone able to get this working on Win2003 + IIS + PHP 5.3.0 + FastCGI?

It loads the module, but all calls to uploadprogress_get_info() return null

chregu, 08.07.2010 22:31 CEST

It's not working with FastCGI in general.

puchu, 14.07.2010 15:25 CEST

Can anyone help me?

At our VPS on Debian Lenny we have uploadprogress installed

Run demo.php
At hosting it works fine
But at localhost it doesn't work

Windows 7 x64 Apache 2.2.15 PHP 5.2.13
I have downloaded

I have written to php.ini
upload_progress_meter.store_method = "file"
uploadprogress.file.contents_template = "D:/Server/Temp/upload_contents_%s"
uploadprogress.file.filename_template = "D:/Server/Temp/upl_%s.txt"

And I see this

At our hosting

But at hosting works - localhost not!!!

puchu, 15.07.2010 15:07 CEST

excuse me!!
all works good!

I can't see loading progress because I load 600 mb file to localhost
my proc will be very busy )))

I ask my friend to upload some file to my ip.
all works good! it works like particial content at squid

Radon8472, 22.09.2010 19:04 CEST

I tried all versions of pierres dlls and i got

PHP: Startup: uploadprogress: Unable to initiale module
Module compiled with build ID=API20090613
PHP compiled with build ID=API=20090626
These options need to match


PHP Startup: Unable to load dynamic library: ".....MYPATH TO EXTDIR....php_uploadprogress.dll" - Das angegebene Module wurde nicht gefunden.


and for

PHP: Startup: uploadprogress: Unable to initiale module
Module compiled with build ID=API20090626,TS,VC9
PHP compiled with build ID=API=20090626, TS,VC6
These options need to match


I`m using XAMPP with

on Windows XP Professional Service Pack 3 (i586)

I hope someone can help me, I did`t find a solution for this problem.

Luis Javier Garrido, 23.10.2010 09:54 CEST

Just a fast question, i cant get it solved even afer much searching... Is there anyway to use the extension with multiple files? I supose assigning different unique ids to diferent file inputs values should work, but what about the file input name?

Jason, 06.01.2011 02:57 CEST

If you are running on Windows x86 using an XAMPP 1.7.3 based webserver installation, then you will need to use the file:
Thanks goes to Sebastien comments for helping me find this. This would likely have solved the problems posted by Veli Akcakaya and Radon8472.

Josh, 05.02.2011 02:05 CEST

Anyone feel like uploading their copy of php_uploadprogress-1.0.1-5.3-Win32-VC6-x86? That link is no longer. Thanks.

Jason, 05.02.2011 12:50 CEST

Any place in particular you want the file uploaded. Will need to have public access, unless you can suggest a better alternative.

josh, 05.02.2011 22:37 CEST

If you want to email it to me, I can put it up on a box account or something and link it here. josh68 at the mail of google the company. Thanks.

Josh, 06.02.2011 18:09 CEST

for anyone who wants it:

Ryan, 09.02.2011 11:46 CEST

@Josh - Give yourself a really big gold star, thank you! Finally got it working on my server!

neolf, 09.02.2011 15:21 CEST

@Josh - thank you!!!

neolf, 09.02.2011 15:23 CEST

@Josh his link version is

Name, 24.04.2011 18:09 CEST

Tanks for the file to xampp 1.7.3

uls, 30.05.2011 21:08 CEST

@Josh; sen bu linki vermişsin ya, ben senin daşşağını öpeyim.

Patrik, 04.07.2011 15:22 CEST

Was anyone able to get this working on IIS + PHP 5.2?

It loads the module, but all calls to uploadprogress_get_info() return null

Ro, 31.08.2011 09:46 CEST

Thanks @Josh you are a hero!

Edgar DeLoa, 08.09.2011 02:55 CEST

@Josh: Thanks, much easier than having to compile it. Kudos :)

Don, 19.11.2011 23:39 CEST

I downloaded the php5.3 version of the windows dll from the provided link I have php 5.3.8. I made the entries into my php.ini file and restarted my apache 2.2. 21 server. The server won't load the dll for some reason "the requested operation has failed!". As soon as I comment out the extension=php_uploadprogress.dll line it restarts but w/o the new extension of course. Anyone have an idea what might be causing this? It's probably something simple I'm overlooking.

Don, 20.11.2011 01:51 CEST

My bad... I installed VC9. After installing VC6 5.2 it installed properly.

Indiexom, 06.01.2012 08:37 CEST

@Josh thanks a ton dude, its work like charm ;)

Daniel, 13.08.2013 17:21 CEST

It works like a charm, thanks!

Josh Utley, 08.09.2013 19:35 CEST

Add a comment

Your email adress will never be published. Comment spam will be deleted!