On Sun, Nov 16, 2008 at 4:05 PM, Adam Jimerson <[EMAIL PROTECTED]> wrote:
> 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.
>
You'll want to look in the error log to see what is there.
Sean