Code that works perfectly
(Modify as necesary)
The form:
<p>Upload CEVO Demos:</p>
</div>
<div>
<ul>
<form action="http://valor.nuclearfallout.net/cgi-bin/cevodemo.cgi" method="post"
enctype="multipart/form-data">
<li><p> Half 1: <input type="file" name="half1" /></p></li>
<li><p>Name (ex. kripmalicehalf1.dem): <input type="text" name="name1" /> (.dem MUST BE AT THE END!)</p></li>
<li><p> Half 2: <input type="file" name="half2" /></p></li>
<li><p>Name (ex. kripmalicehalf2.dem): <input type="text" name="name2" /> (.dem MUST BE AT THE END!)</p></li>
<li><p><input type="submit" name="Submit" value="Upload Demos" /></p></li>
</form>
</ul>
</div>
<p><a href=http://valor.nuclearfallout.net/uploadhelp.html>Need Help? Click here for instructions.</p>
The .cgi:
#!/usr/bin/perl -wT
use strict;
use CGI;
use CGI::Carp qw ( fatalsToBrowser );
use File::Basename;
my $safe_filename_characters = "a-zA-Z0-9_.-";
my $upload_dir = "../demos/cevos7";
my $query = new CGI;
my $filename1 = $query->param("name1");
my $filename2 = $query->param("name2");
if ( !$filename1 )
{
print $query->header ( );
print "There was a problem uploading your demos.... talk to Krippler.";
print "Tell me its error code 1.";
}
if ( !$filename2 )
{
print $query->header ( );
print "There was a problem uploading your demos.... talk to Krippler.";
print "Tell me its error code 2.";
}
my ( $name1, $path, $extension ) = fileparse ( $filename1, '\..*' );
$filename1 = $name1 . $extension;
my ( $name2, $path, $extension ) = fileparse ( $filename2, '\..*' );
$filename2 = $name2 . $extension;
$filename1 =~ tr/ /_/;
$filename1 =~ s/[^$safe_filename_characters]//g;
$filename2 =~ tr/ /_/;
$filename2 =~ s/[^$safe_filename_characters]//g;
if ( $filename1 =~ /^([$safe_filename_characters]+)$/ )
{
$filename1 = $1;
}
else
{
die "Filename contains invalid characters - Tell krippler error code 3";
}
if ( $filename2 =~ /^([$safe_filename_characters]+)$/ )
{
$filename2 = $1;
}
else
{
die "Filename contains invalid characters - Tell krippler error code 4";
}
my $upload_filehandle1 = $query->upload("half1");
my $upload_filehandle2 = $query->upload("half2");
open ( UPLOADFILE, ">$upload_dir/$filename1" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle1> )
{
print UPLOADFILE;
}
close UPLOADFILE;
open ( UPLOADFILE, ">$upload_dir/$filename2" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle2> )
{
print UPLOADFILE;
}
close UPLOADFILE;
{
print $query->header ( );
print "Demo Upload sucessful.... tell Krippler.";
print " Coding was done by Casey (Krippler) Kurtyka";
}