Try this
Code:
my $upload_dir = "http://www.photodesktops.ca/upload";
The highlighted path to the uploaded file storage directory needs to be the absolute server path. Varies depending on your host.
Also, user permissions (chmod if your using Linux) must be set for that directory that will enable the script to read and write to it.
Depends on your host configuration.
Code:
#!/usr/bin/perl -wT
use strict;
use CGI;
use CGI::Carp qw ( fatalsToBrowser );
use File::Basename;
$CGI::POST_MAX = 1024 * 5000;
my $safe_filename_characters = "a-zA-Z0-9_.-";
my $upload_dir = "http://www.photodesktops.ca/upload";
my $query = new CGI;
my $name = $query->param("name");
my $location = $query->param("location");
my $email = $query->param("email");
my $photolocation = $query->param("photolocation");
my $filename = $query->param("uploadfile");
if ( !$filename )
{
print $query->header ( );
print "There was a problem uploading your photo (try a smaller file).";
exit;
}
my ( $name, $path, $extension ) = fileparse ( $filename, '\..*' );
$filename = $name . $extension;
$filename =~ tr/ /_/;
$filename =~ s/[^$safe_filename_characters]//g;
if ( $filename =~ /^([$safe_filename_characters]+)$/ )
{
$filename = $1;
}
else
{
die "Filename contains invalid characters";
}
my $upload_filehandle = $query->upload("uploadfile");
open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
close UPLOADFILE;
print $query->header ( );
print <<END_HTML;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Thanks!</title>
</head>
<body>
<p>Thanks for uploading your photo!</p>
<p>Your email address: $email</p>
<p>Your photo:</p>
<p><img src="http://www.photodesktops.ca/upload/$filename" alt="Photo" border="0"></p>
</body>
</html>
END_HTML
Bookmarks