############################################################################## # Übergabeparameter aus Script # ############################################################################## # my $SID = $query->param('sid'); my $action = "upload"; my $DEFAULT_UPLOAD_DIR = 'C:/htdocs/test/images/upload/'; use CGI; use CGI::Carp qw(fatalsToBrowser); use strict; use JSON; my $query = new CGI; my @Feldnamen = $query->param(); print $query->header(), $query->start_html('CGI-Feedback'), $query->h1('CGI-Feedback vom Formular'); foreach my $Feld (@Feldnamen) { print $query->strong('Feldname: '), $Feld, $query->strong(', Inhalt: '), $query->param($Feld), "
"; } if($query->param() == 'true') { print "es wurde was uebermittelt
\n"; } print $query->end_html(); if ($query->param('BT_Exit')) { $action = ''; } if ($action eq 'upload') { print $query->header; print &Upload($query, $DEFAULT_UPLOAD_DIR); } else { my $url = $BACK_URL . "?error=error1"; print $query->redirect($url); } ################################################################################ # Subs # ################################################################################ ######################################## # Upload Sub # ######################################## sub Upload { my($query, $upload_dir) = @_; my($file_query, $file_name, $size, $buff, $time, $bytes_count); $size = $bytes_count =0; $_ = $file_query = $query->param('file'); s/\w://; s/([^\/\\]+)$//; $_ = $1; s/\.\.+//g; s/\s+//g; $file_name = $_; if (! $file_name) { $_ = $NAME_TITLE{'EU_BadFN'}; s/Value_FileName/$file_query/ig; &Error($_, 1); } if (-e "$upload_dir/$file_name") { $_ = $NAME_TITLE{'EU_FExist'}; s/Value_FileName/$file_name/ig; &Error($_, 1); } open(FILE,">$upload_dir/$file_name") || &Error("Error opening file $file_name for writing, error $!", 1); binmode FILE; $time=time(); while ($bytes_count = read($file_query,$buff,2096)) { $size += $bytes_count; #select(undef, undef, undef,0.35); # sleep for 0.35 of a second. print FILE $buff; } close(FILE); chmod (0666, "$upload_dir/$file_name"); if ((stat "$upload_dir/$file_name")[7] <= 0) { unlink("$upload_dir/$file_name"); $_ = $NAME_TITLE{'EU_Size'}; $_ .= '{"success": false, "error": "Fehler"}'; s/Value_FileName/$file_name/ig; &Error($_, 1); } else { $time = time -$time; $_ = $NAME_TITLE{'Upload_Succes_txt'}; s/Value_FileName/$file_name/ig; s/Value_Size/$size/ig; s/Value_Time/$time/ig; my $obj = '{"success": "true", "message": "Upload OK"}'; #my $json = JSON->new; #print $json->encode($obj); print $obj; #&ResutPage($NAME_TITLE{'Upload_Succes'}, $_); } } ######################################## # Other Subs # ######################################## sub Write_Data_2_File { my($file, $pt_arry_data) = @_; open(FILE, ">$file") || print "Cannot write file $file, error: $!
\n"; print FILE @$pt_arry_data; close(FILE); } sub Read_Data_File { my($file) = @_; my @data; open(FILE, "<$file") || print "Cannot open file $file, error: $!
\n"; @data = ; close(FILE); return @data; }