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, 16.03.2009 23:08 CET

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

Ken Petri, 17.03.2009 05:28 CET

Chregu, 17.03.2009 06:26 CET

Ken: Thanks for the hint, I adjusted the post

Anuga, 22.03.2009 02:52 CET

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

XerraX, 13.05.2009 22:37 CET

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

Roula, 24.05.2009 06:45 CET

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 13:53 CET

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 13:16 CET


Is any possible run this under PHP 5.3?


Chregu, 19.07.2009 15:42 CET

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

Willie, 17.08.2009 02:46 CET

Does this work on IIS?

Chregu, 17.08.2009 07:30 CET

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

Willie, 17.08.2009 15:23 CET

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

Chregu, 17.08.2009 15:25 CET

Great to hear, thanks for your feedback, Willie

Basdub, 20.08.2009 20:49 CET

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 21:12 CET

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 21:52 CET

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 14:38 CET


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 22:30 CET

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


Milos, 04.11.2009 08:34 CET

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

Gavin, 24.11.2009 17:28 CET

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 09:57 CET

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 16:33 CET

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

Ben, 08.07.2010 20:17 CET

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 21:31 CET

It's not working with FastCGI in general.

puchu, 14.07.2010 14:25 CET

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 14:07 CET

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 18:04 CET

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 08:54 CET

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 01:57 CET

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 01:05 CET

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 11:50 CET

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 21:37 CET

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 17:09 CET

for anyone who wants it:

Ryan, 09.02.2011 10:46 CET

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

neolf, 09.02.2011 14:21 CET

@Josh - thank you!!!

neolf, 09.02.2011 14:23 CET

@Josh his link version is

Name, 24.04.2011 17:09 CET

Tanks for the file to xampp 1.7.3

uls, 30.05.2011 20:08 CET

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

Patrik, 04.07.2011 14:22 CET

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 08:46 CET

Thanks @Josh you are a hero!

Edgar DeLoa, 08.09.2011 01:55 CET

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

Don, 19.11.2011 22:39 CET

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 00:51 CET

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

Indiexom, 06.01.2012 07:37 CET

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

Daniel, 13.08.2013 16:21 CET

It works like a charm, thanks!

Josh Utley, 08.09.2013 18:35 CET

Add a comment

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