I know this is under PHP, but here's the CGI script I use for uploading. Fairly simple.
Code:
#!/usr/bin/perl -w
use CGI;
$upload_dir = "/usr/local/www/files/upload";
$query = new CGI;
$filename = $query->param("photo");
$filename =~ s/.*[\/\\](.*)/$1/;
$upload_filehandle = $query->upload("photo");
open UPLOADFILE, ">$upload_dir/$filename";
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
close UPLOADFILE;
print $query->header ( );
print <<END_HTML;
<HTML>
<HEAD>
<TITLE>Thanks!</TITLE>
</HEAD>
<BODY>
<P>Uploaded file</P>
<br><br>
<a href="/files/index.html">Upload Another</a><br>
<a href="/files/upload">See Files</a><br>
</BODY>
</HTML>
END_HTML