Thread ExtJs mit Perl Problem bei den Post Variablen
(21 answers)
Opened by orca16 at 2008-09-01 12:43
so nach einigem Suchen habe ich herausgefunden, dass der UploadDialog von ExtJs keine wirklichen Post Variablen übergibt, also habe ich den Upload etwas angepasst, sodas ich nun einige Parameter übergeben bekomme.
Das Perl Script ebenfalls angepasst und das schaut nun so aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 #!c:/perl/bin/perl -w my $DATA_DIR='C:/htdocs/test/bigsize_images'; # Path of data directory my $DEFAULT_UPLOAD_DIR='C:/htdocs/test/images/upload'; # Path of work directory ################################################################################ # DO NOT EDIT ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING # ################################################################################ use strict; use CGI; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); my $query = new CGI(); ############################################################################## # Übergabeparameter aus Formular # ############################################################################## my $SID= $query->url_param('SID'); my $action= $query->url_param('action'); my $file_name=$query->url_param('filename'); my $IMAGE_DIR='C:/htdocs/test/images/'.$query->url_param('album'); # Path of image album directory if ($query->param('BT_Exit')) { $action = ''; } if ($action eq 'upload') { print $query->header; print &Upload($query, $DEFAULT_UPLOAD_DIR, $file_name, $IMAGE_DIR); } else { print "Content-type: text/html\n\n"; print '({"success":false,"error":"No upload flag request"})'; } ######################################## # Upload Sub # ######################################## sub Upload { my($query, $upload_dir) = @_; my($file_query,$size, $buff, $time, $bytes_count); $size = $bytes_count = 0; $file_query = $query->param("file"); if (! $file_name) { &Error("Bad filename", 1); } #if (-e "$upload_dir/$file_name") { # &Error("File allready exists", 1); #} open(FILE,">$upload_dir/$file_name") || &Error("File not found!", 1); binmode FILE; $time=time(); while ($bytes_count = read($file_query,$buff,1024)) { print FILE $buff; $size += $bytes_count; } close(FILE); #chmod (0644, "$upload_dir/$file_name"); if ((stat "$upload_dir/$file_name")[7] <= 0) { unlink("$upload_dir/$file_name"); &Error("Could not open file", 1); } else { $time = time -$time; print '({"success":true})'; } } ######################################## # HTML Present subs # ######################################## sub Error { my($errortext, $exit) = @_; #print "Content-type: text/html\n\n"; print '({"success":false,"error":"'.$errortext.'"})'; if($exit) { exit; } } Wenn ich nun die Zeilen Code (perl): (dl
)
1 2 3 #if (-e "$upload_dir/$file_name") { # &Error("File allready exists", 1); #} auskommentiere bekomme ich den Fehler angezeigt, obwohl die Datei eigentlich noch nicht da ist. Was ist da falsch? Wenn ich die Zeilen auskommentiert lasse, bekomme ich den Fehler angezeigt :Can't use an undefined value as a symbol reference at C:/xampp/cgi-bin/upload.cgi line 53. Kurioser Weise wird das File aber hochgeladen bzw. geschrieben und ist intakt. Wo liegt da mein Fehler? Ich bastel nun schon zwei Wochen an dem Ding, so langsam geht mir die Geduld aus... Hat jemand noch ein paar Tips auf Lager??? |