version 1.7, 2001/12/21 16:10:58
|
version 1.12, 2006/09/06 19:26:07
|
Line 29 use strict;
|
Line 29 use strict;
|
$|=1; |
$|=1; |
|
|
my $tmpdir = '/home/httpd/perl/tmp/'; |
my $tmpdir = '/home/httpd/perl/tmp/'; |
my $filename = $ENV{'QUERY_STRING'}; |
my %data; |
|
foreach (split/&/,$ENV{'QUERY_STRING'}) { |
if ($filename =~ /\// | |
my ($name,$value)=split/=/; |
$filename !~ /_plot.data$/) { |
$data{$name}=$value; |
die; |
|
} |
} |
|
my $filename = $data{'file'}; |
|
# unescape filename |
|
$filename =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
die if ($filename =~ /\// || $filename !~ /_plot.data$/); |
$filename = $tmpdir . $filename; |
$filename = $tmpdir . $filename; |
if (-e $filename) { |
die "$data{'file'} does not exist\n" if (! -e $filename); |
|
|
|
my $output = $data{'output'}; |
|
if ($output eq '') { |
|
$output = (split('\.',$0))[-1]; |
|
} |
|
|
|
if ($output eq 'gif' || $output eq 'png') { |
open PLOT, "gnuplot $filename |"; |
open PLOT, "gnuplot $filename |"; |
print <<"END"; |
print <<"END"; |
Content-type: image/gif |
Content-type: image/$output |
|
|
END |
END |
while ($_=<PLOT>) { |
while ($_=<PLOT>) { |
print; |
print; |
} |
} |
} |
} elsif ($output eq 'eps') { |
|
print <<"END"; |
|
Content-type: text/html |
|
|
|
<html><head><title>eps plot creation</title></head> |
|
<body> |
|
<h2>Creating eps plot</h2> |
|
|
|
END |
|
if (! system ("gnuplot $filename")) { |
|
print "<h2>An error occured.</h2>\n". |
|
"I am not going to tell you about it as I have not bothered ". |
|
"to figure out how to get you the error text.\n"; |
|
} else { |
|
print "<h2>EPS file generated successfully.</h2>\n"; |
|
} |
|
print "</body></html>\n"; |
|
} else { |
|
die "output $output is not a recognized value or has no value\n"; |
|
} |