##############################################################################
# Ü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), "<br>";
}
if($query->param() == 'true') { print "es wurde was uebermittelt<br>\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: $!<BR>\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: $!<BR>\n";
@data = <FILE>;
close(FILE);
return @data;
}