advait has asked for the wisdom of the Perl Monks concerning the following question:

Hi All In the following code my cgi upload function is failing. I cannot find the reason. Please help!!!!!!!!111
use CGI; use strict; sub GetDirectoryName() { #Perl's special variable, $$ returns the current pid and $^T retur +ns the timestamp (in seconds since 1970). #time stamp PID and a counter are used to make a uniqe dir name my $counter = 0; my $dir_name = ""; do { $dir_name = sprintf("%s%s%s%s","cgh",$$,$^T,$counter++); } while -e $dir_name; return $dir_name; } my $query = new CGI; my $DirName=GetDirectoryName(); my $UploadDir = "/var/www/website/output/tmp/" . $DirName; my $command = "mkdir $UploadDir"; system ($command); my $UserFilename = $query->param("uploadFile"); $UserFilename =~ s/.*[\/\\](.*)/$1/; my $GivenUserFilename=sprintf("%s%s",$DirName,".HTML"); my $UserFilehandle = $query->upload("uploadFile"); open UPLOADFILE, ">$UploadDir/$GivenUserFilename"; while ( <$UserFilehandle> ){ print UPLOADFILE ;} close UPLOADFILE; print $query->header ( ); print <<END_HTML; <html> <body> done </body> </html> END_HTML

Replies are listed 'Best First'.
Re: File upload fails
by pffan239 (Beadle) on Jul 10, 2007 at 19:53 UTC
    Does your HTML (that calls the above script as a form action) have the enctype="multipart/form-data" attribute in the form tag? I always forget it and spend hours trying to figure out why the file does make it across...
      a big thanks....................................................................... !!!!!it works now