my $safe_filename_characters = "a-zA-Z0-9_.-"; sub PLOTTING { my ($GRAPH_FH, $mygraph, $graphimage); open ($GRAPH_FH, '>','/home/deruytja/webserver/output/multiping/'.$graphname.'.png'); #Redirecting Standart Error to file $mygraph = GD::Graph::linespoints->new(500, 300); $mygraph->set( x_label => 'Link', y_label => 'Antwortzeit in ms', title => 'Antwortzeiten der Links', dclrs => ['green'], y_max_value => $max, bar_spacing => 10, show_values => 1, ) or warn $mygraph->error; $graphimage = $mygraph->plot(\@graphdata); binmode $GRAPH_FH; print $GRAPH_FH $graphimage->png; close $GRAPH_FH; } #### sub UPLOAD { my $filename = $cgi->param('toping'); if ( !$filename ) { print $cgi->header ( ); print 'There was a problem uploading your file (try a smaller file).'; exit; } my ( $name, $path, $extension ) = fileparse ( $filename, '..*' ); $filename = $name . $extension; $filename =~ tr/ /_/; $filename =~ s/[^$safe_filename_characters]//g; if ( $filename =~ /^([$safe_filename_characters]+)$/ ) { $filename = $1; } else { print $cgi->header(); print 'There was a problem with the filename (please rename).'; exit; } my $wfile = $cgi->upload('toping'); open(my $DAT,">", "/home/deruytja/webserver/rifucgi/temp_ul/toping.$date") or die 'Error processing file INPUT: ',$!; binmode $DAT; while (read $wfile, $data, 1024) { print $DAT $data } close $DAT; } #### if (!length($dateiname) == 0 && $dateiname =~ /^([$safe_filename_characters]+)$/) { $out_file = ("$dateiname\_$date.csv") or die 'Error processing file: ',$!; $graphname = "$dateiname\_$date"; } else { print $cgi->header(); print 'There was a problem with your file name, it was reverted to "ping_" (please change output name).'; $out_file = ("ping_$date.csv") or die 'Error processing file: ',$!; $graphname = "ping_$date"; }