in reply to File Upload + recording "metadata"

The main difference between file uploading and normal forms lies in the way the form values are passed. When a file is uploaded, the target cgi has to expect multipart form data, which is different than the key1=value1&key2=value2 format you may be used to. For an understanding of what multipart data looks like, you might want to scan through the rfc. After you look at the examples though, I'm pretty sure you'll decide that it's not worth it to take the time to parse it yourself. As posted above, CGI.pm has a very clean interface to handling file uploads, and is a great way to go. This post is probably only useful if you care to find out any of the behind-the-scenes working of file upload.