<?php
/**
* example1.php
*
* this script provides a user to upload a PHP src file
* and returns the resulting jpeg image
*/
if (count($_FILES)) {
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br />";
} else {
show_graph();
}
} else {
// no files uploaded
show_form();
}
exit;
function show_form()
{
print "<html>\n<body>\n";
print "<h2>upload some php code</h2>\n";
print '
<form method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>';
print "\n</body>\n</html>\n";
}
function show_graph()
{
require_once("dotwriter.inc.php");
$c = new dotrunner();
// need somewhere to write temp file and resulting jpeg
$c->outputFileName=tempnam('graphs/','graph');
$outfile=$c->genGraph(
/* first param is the src code */
file_get_contents($_FILES["file"]["tmp_name"]),
/* 2nd param is a title for the graph - normally this would be the filename */
'Uploaded');
if (file_exists($outfile) && ($in=fopen($outfile, 'r'))) {
header('Content-Type: image/jpeg');
while($pt=fgets($in, 8096)) {
print $pt;
}
fclose($in);
unlink($outfile);
} else {
print "erm.....something went wrong?";
}
$c->cleanUp();
}
|