bokov: Ajax: Files Upload!

Beitrag lesen

Hallo alle zusammen,

hat jemand von euch das Valums Upload (http://valums.com/ajax-upload/) ausprobiert. Ich kriege es mit Perl nicht hin.

Original Perl-Script:

#!/usr/bin/perl  
  
    use strict;  
    use CGI::Carp qw(fatalsToBrowser);  
  
    use Digest::MD5;  
  
    my $uploaddir = '/folder/to/save/in/ajax_upload/tmp_uploads';  
  
    my $maxFileSize = 0.5 * 1024 * 1024; # 1/2mb max file size...  
  
    use CGI;  
    my $IN = new CGI;  
  
    my $file = $IN->param('POSTDATA');  
    my $temp_id = $IN->param('temp_id');  
  
	# make a random filename, and we guess the file type later on...  
    my $name = Digest::MD5::md5_base64( rand );  
       $name =~ s/\+/_/g;  
       $name =~ s/\//_/g;  
  
    my $type;  
    if ($file =~ /^GIF/) {  
        $type = "gif";  
    } elsif ($file =~ /PNG/) {  
        $type = "png";  
    } elsif ($file =~ /JFIF/) {  
        $type = "jpg";  
    }  
  
    if (!$type) {  
        print qq|{ "success": false, "error": "Invalid file type..." }|;  
        print STDERR "file has been NOT been uploaded... \n";  
    }  
  
    print STDERR "Making dir: $uploaddir/$temp_id \n";  
  
    mkdir("$uploaddir/$temp_id");  
  
    open(WRITEIT, ">$uploaddir/$name.$type") or die "Cant write to $uploaddir/$name.$type. Reason: $!";  
        print WRITEIT $file;  
    close(WRITEIT);  
  
    my $check_size = -s "$uploaddir/$name.$type";  
  
    print STDERR qq|Main filesize: $check_size  Max Filesize: $maxFileSize \n\n|;  
  
    print $IN->header();  
    if ($check_size < 1) {  
        print STDERR "ooops, its empty - gonna get rid of it!\n";  
        print qq|{ "success": false, "error": "File is empty..." }|;  
        print STDERR "file has been NOT been uploaded... \n";  
    } elsif ($check_size > $maxFileSize) {  
        print STDERR "ooops, its too large - gonna get rid of it!\n";  
        print qq|{ "success": false, "error": "File is too large..." }|;  
        print STDERR "file has been NOT been uploaded... \n";  
    } else  {  
        print qq|{ "success": true }|;  
  
        print STDERR "file has been successfully uploaded... thank you.\n";  
    }

Dank für die Tipps.