#!/usr/bin/perl -T use strict; use CGI qw(:standard upload); use CGI::Carp; use HTML::Entities; print header(), start_html('Upload Test'), h1('Upload Test'), start_multipart_form(), "Enter how many files to upload: ", textfield("filecount"), br(); for my $i (1..param('filecount')) { print "File $i: ", filefield(-name => "file$i"), br(); } print submit(); for my $file (sort grep /file/, param()) { print p(); my $handle = upload($file); open (IMAGE, ">$1") || die "Couldn't open image file"; # I've tried the following variables for the filename: # $1, $handle, $file, $file$i. # I've also tried a generic filename (ie. test.txt) # I made sure that I put an absolute path name in and # set the permissions to 0777. my $buffer; while (read($handle, $buffer, 10240)) { print IMAGE $buffer; } unless (defined($handle)) { if ($file =~ /(\d+)/) { print h3("File request $1 did not return a handle\n"); } next; } print p(), h3("Uploaded $handle"), br(), "
";
  print encode_entities($_) while <$handle>;
  print "
"; } close(IMAGE);