4 use CGI::Carp qw(fatalsToBrowser);
8 my $uploaddir = '/folder/to/save/in/ajax_upload/tmp_uploads';
10 my $maxFileSize = 0.5 * 1024 * 1024; # 1/2mb max file size...
15 my $file = $IN->param('POSTDATA');
16 my $temp_id = $IN->param('temp_id');
18 # make a random filename, and we guess the file type later on...
19 my $name = Digest::MD5::md5_base64( rand );
24 if ($file =~ /^GIF/) {
26 } elsif ($file =~ /PNG/) {
28 } elsif ($file =~ /JFIF/) {
33 print qq|{ "success": false, "error": "Invalid file type..." }|;
34 print STDERR "file has been NOT been uploaded... \n";
37 print STDERR "Making dir: $uploaddir/$temp_id \n";
39 mkdir("$uploaddir/$temp_id");
41 open(WRITEIT, ">$uploaddir/$name.$type") or die "Cant write to $uploaddir/$name.$type. Reason: $!";
45 my $check_size = -s "$uploaddir/$name.$type";
47 print STDERR qq|Main filesize: $check_size Max Filesize: $maxFileSize \n\n|;
50 if ($check_size < 1) {
51 print STDERR "ooops, its empty - gonna get rid of it!\n";
52 print qq|{ "success": false, "error": "File is empty..." }|;
53 print STDERR "file has been NOT been uploaded... \n";
54 } elsif ($check_size > $maxFileSize) {
55 print STDERR "ooops, its too large - gonna get rid of it!\n";
56 print qq|{ "success": false, "error": "File is too large..." }|;
57 print STDERR "file has been NOT been uploaded... \n";
59 print qq|{ "success": true }|;
61 print STDERR "file has been successfully uploaded... thank you.\n";