Apache::UploadMeter - Apache module which implements an upload meter for form-based uploads


  (in httpd.conf)
  PerlLoadModule Apache::UploadMeter
  <UploadMeter MyUploadMeter>
      UploadForm    /form.html
      UploadHandler /perl/upload
      UploadMeter   /perl/meter

  (in /form.html)

  <INPUT TYPE="FILE" NAME="theFile"/>


Apache::UploadMeter is a mod_perl module which implements a status-meter/progress-bar to show realtime progress of uploads done using a form with enctype=multipart/formdata.

The only changes needed to be made to existing pages and/or scripts is the replacement of the existing <FORM> tag, which is done automatically the a special directive <!--#uploadform--> instead of the existing <FORM> tag.

NOTE: To use this module, mod_perl MUST be built with StackedHandlers enabled.


Configuration is done in httpd.conf using <UploadMeter> sections which contain the URLs needed to manipulate each meter. Currently multiple meters are supported with the drawback that they must use distinct URLs (eg, you can't have 2 meters with the same UploadMeter path).

  • <UploadMeter MyMeter> Defines a new UploadMeter. The MyMeter parameter specifies a unique name for this uploadmeter. Currently, names are required and must be unique.

    In a future version, if no name is given, a unique symbol will be generated for the meter.

    Each UploadMeter section requires 3 sub-parameters

    • UploadForm

      This should point to the URI on the server which contains the upload form with the special <!--#uploadform--> tag. Note that there should NOT be an opening <FORM> tag, but there SHOULD be a closing </FORM> tag on the HTML page.

    • UploadHandler

      This should point to the target (eg, ACTION) of the upload form. The target should already exist and do something useful.

    • UploadMeter

      This should point to an unused URI on the server. This URI will be used to provide the progress-meter window.


Beginning from version 0.99_01, this module is only compatible with Apache2/mod_perl2 Support for Apache 1.3.x is discontinued, as it's too damn complicated to configure in Apache 1.3.x This may change in the future, but I doubt it; servers are slowly but surely migrating from 1.3 to 2.x Maybe it's finally time for you to upgrade too.


Copyright (c) 2001-2007 Issac Goldstand <> - All rights reserved.

This library is free software. It can be redistributed and/or modified under the same terms as Perl itself.