mod_upload is an input filter module for multipart/form-data, as submitted from File Upload forms on the Web.
mod_upload is an input filter module for multipart/form-data, as submitted from File Upload forms on the Web. It decodes the data, so the handler gets the file itself without the MIME encoding. Other fields from the form are provided as a table of names/values.

A second filter, formerly mod_tmpfile, is available to store the file contents in a tempfile. This ensures that all the Form data are available when the file is processed, and is useful for handlers that need to run synchronously.


Consider a simple HTML file upload fragment:

< form method="post" action="my-handler" enctype="multipart/form-data" >
Your name: < input name="name" >
Your email address: < input name="email" >
< br >File: < input name="file" type="file" >
< br >Additional comments < textarea rows=4 cols=40 name="comments" >
< /textarea >
< /form >

This will generate an HTTP POST request containing an uploaded file with three additional user-supplied text fields. The data are MIME-encoded and normally the Handler has to decode them.


Using upload-filter as an input filter, the handler will be passed instead the decoded file contents. It can access the other Form data (the values of name, email and comments through a table exported by the function
apr_table_t* mod_upload_form(request_rec* r)
which is available to any Handler or other module that needs the data.


To insert mod_upload, use the AddInputFilter or SetInputFilter directives. For pipelined applications,
SetInputFilter upload-filter
or for synchronous applications, add both upload and tmpfile
SetInputFilter tmpfile-filter;upload-filter

mod_upload defines two further configuration directives:

The name of the file upload field in the HTML form to be processed

The size of the table allocated for form elements other than the upload. This is advisory; the APR can handle automatic resizing of tables.

last updated on:
April 18th, 2006, 20:43 GMT
license type:
GPL (GNU General Public License) 
developed by:
Nick Kew
ROOT \ Internet \ HTTP (WWW)
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!

Add your review!