I'm trying to make a CGI script to upload files remotely onto my server, to get 
around my uni blocking everything but port 80, but I have ran into a problem 
with it.  I followed the documentation on CPAN for uploading files and did what 
they have suggested as the best way but it doesn't work.  Here is my code:

#!/usr/bin/perl
use warnings;
use strict;
use CGI ':standard';

#Declare any variables
my $radio_button;
my $filename;

#Generate the form
print header;
print start_html ("File Uploader v3");
print "<h1>File Uploader</h1>\n";
print "<hr>\n";
print "<p>Which file type: </p>";
print radio_group(-name=>'File_Type',
             -values=>['HTML', 'CGI'],
             -default=>'HTML');
print start_multipart_form();
print "<p>File Upload: </p>";
print filefield (-name=>'Uploaded_file',
        -default=>'Give a file',
        -size=>'50');
print "<br><br>";
print submit('Upload', 'Upload');
print reset;
print endform;

#Do the work
$radio_button = param('File_Type');
if ( $radio_button eq "HTML" ) {
        $filename = upload('Uploaded_file');
        open (OUTFILE, ">>/tmp/uploaded.html") || die "Can't open the file: $!";
        while (<$filename>) {
                print OUTFILE $_;
        }
        close (OUTFILE);
        open (MAIL, "|mail -s \"File Uploaded\" vendion");
        print MAIL "A file has just been uploaded!\n";
        close (MAIL);
} else {
        #Code soon to come
}
print end_html;

Running it locally prints out the generated HTML and it looks right and the 
page does open correctly on my server but there is not file in /tmp and the 
mail is never sent and I don't know if it is a problem with opening the OUTFILE 
handle because the die command doesn't kick in from what I can see.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to