Enjoy unlimited access to all forum features for FREE! Optional upgrade available for extra perks.
Domain summit 2024

Please help with this cgi upload script!

Status
Not open for further replies.

Ang

DNF Addict
Legacy Exclusive Member
Joined
Mar 12, 2007
Messages
657
Reaction score
2
Hi guys, I keep getting the error message :"Can't find string terminator "END_HTML" anywhere before EOF at upload.cgi line 53" and I am at my wits end trying to fix this one.

Here is the script - if anyone has any suggestions fire them at me, I'll try just about anything right now. Thanks


#!/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>
END_HTML
;
 

Area52

Level 4
Legacy Platinum Member
Joined
Mar 30, 2006
Messages
197
Reaction score
0
Code:
</body>
[COLOR="Blue"]</html>[/COLOR]
END_HTML
;
 

Ang

DNF Addict
Legacy Exclusive Member
Joined
Mar 12, 2007
Messages
657
Reaction score
2
k i'll try it.... had it that way before and was still not working but could have been due to other stuff that I was working on at the same time.

now getting error msg - No such file or directory at upload.cgi line 42.
 

Area52

Level 4
Legacy Platinum Member
Joined
Mar 30, 2006
Messages
197
Reaction score
0
Try this
Code:
my $upload_dir = "[COLOR="RoyalBlue"]http://www.photodesktops.ca/upload[/COLOR]";
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
 
Status
Not open for further replies.

The Rule #1

Do not insult any other member. Be polite and do business. Thank you!

Sedo - it.com Premiums

IT.com

Premium Members

AucDom
UKBackorder
Be a Squirrel
MariaBuy

Our Mods' Businesses

URL Shortener
UrlPick.com

*the exceptional businesses of our esteemed moderators

Top Bottom