You've got a couple of fundamental elements missing.
Code:
$query = new CGI;
#$cgi = new CGI; <- NOT NEEDED - Only using one CGI object
$directory_name = $query->param('directory_name');
$photo1 = $query->param('photo1');
if ($photo1 ne "") {
$upload_dir = "$directory_name/";
$photo_name = $photo1;
$photo_name =~ s/^.*(\\|\/)//g;
if($photo_name){
my $upload = $query->upload('photo1');
open(OUT, ">$upload_dir/$photo_name") || die "Failed to upload: $!";
binmode OUT; #Utilizes binary mode for Windows machines
while(<$upload>) {
print OUT;
}
close(OUT);
}
}
print $query->header, "DONE";
I'd recommend that you use the strict pragma and also validate your directory_name input.
Bookmarks