downloadPlot.php 1.89 KB
<?php

require_once 'config.php';

if (!isset($_POST['sessionId']))
{
	header("HTTP/1.0 400 Bad Request");
	echo json_encode(array("success" => false, "error" => "Unknown session Id"));
	exit;
}
$sessionId = $_POST['sessionId'];

if (!isset($_POST['interactiveId']))
{
	header("HTTP/1.0 400 Bad Request");
	echo json_encode(array("success" => false, "error" => "Unknown interactive Id"));
	exit;
}
$interactiveId     = $_POST['interactiveId'];

$preview = empty($_POST['preview']) ? FALSE : $_POST['preview'];

download_plot($sessionId, $interactiveId, $preview);

function download_plot($sessionId, $interactiveId, $preview)
{
	// Must be fresh start
	if( headers_sent() )
	{
		header("HTTP/1.0 400 Bad Request");
		echo json_encode(array("success" => false, "error" => "Headers Sent"));
		return;
	}

	// Required for some browsers
	if(ini_get('zlib.output_compression'))
		ini_set('zlib.output_compression', 'Off');

	//Build file path
	if (!$preview) {
		$fullPath = USERPATH."/".$sessionId."/RES/Plot_/".$interactiveId.".png";
	}
	else {
		$fullPath = USERPATH."/".$sessionId."/RES/Plot_/".str_replace('plot_','instant',$interactiveId).".png";
	}
	// File Exists?
	if( file_exists($fullPath) ){

		// Parse Info / Get Extension
		$fsize = filesize($fullPath);
		$path_parts = pathinfo($fullPath);
		$ctype="image/png";
		
		header("Pragma: public"); // required
		header("Expires: 0");
		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
		header("Cache-Control: private",false); // required for certain browsers
		header("Content-Type: $ctype");
		header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
		header("Content-Transfer-Encoding: binary");
		header("Content-Length: ".$fsize);
		ob_clean();
		flush();
		readfile( $fullPath );

	} else
	{
		header("HTTP/1.0 400 Bad Request");
		echo json_encode(array("success" => false, "error" => "No existing plot"));
		return;
	}
}

?>