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; } } ?>