+ Reply to Thread
Results 1 to 4 of 4

Thread: Please help with this cgi upload script!

  1. #1
    DNF Addict
    Last Activity Today 12:44 PM
    $ideline's Avatar

    Join Date
    Mar 2007
    Location
    Canada
    Country
    Posts
    590
    DNF$
    255
    Trader Rating: 27 reviews

    Please help with this cgi upload script!

    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:OST_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
    ;
    DNshop.ca -- the place to shop for .ca domains

    CorrectedContent.com -- professional proofreading services


  2. #2
    Platinum Lifetime Member
    Last Activity 12-21-2009 11:56 AM
    Area52's Avatar

    Join Date
    Mar 2006
    Location
    US
    Country
    Posts
    310
    DNF$
    2,135
    Trader Rating: 4 reviews
    Code:
    </body>
    </html>
    END_HTML
    ;
    


  3. #3
    DNF Addict
    Last Activity Today 12:44 PM
    $ideline's Avatar

    Join Date
    Mar 2007
    Location
    Canada
    Country
    Posts
    590
    DNF$
    255
    Trader Rating: 27 reviews
    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.
    Last edited by $ideline; 07-12-2008 at 09:53 PM. Reason: Automerged Doublepost
    DNshop.ca -- the place to shop for .ca domains

    CorrectedContent.com -- professional proofreading services


  4. #4
    Platinum Lifetime Member
    Last Activity 12-21-2009 11:56 AM
    Area52's Avatar

    Join Date
    Mar 2006
    Location
    US
    Country
    Posts
    310
    DNF$
    2,135
    Trader Rating: 4 reviews
    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
    


+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts