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'] == "true"); $preview_function = empty($_POST['function']) ? FALSE : ($_POST['function'] == "true"); download_plot($sessionId, $interactiveId, $preview, $preview_function); function download_plot($sessionId, $interactiveId, $preview, $preview_function) { // 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 if (!$preview_function) { $fullPath = USERPATH."/".$sessionId."/RES/Plot_/".str_replace('plot_','instant',$interactiveId).".png"; } else { $fullPath = USERPATH."/".$sessionId."/RES/Plot_/".str_replace('plot_','plotFunction',$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"); $newName ; preg_match('/(\d+)/', basename($fullPath), $matches); if (isset($matches[0])) { $newName = str_replace('.png', '_'.date('YmdHis').'.png', str_replace($matches[0], (string)$matches[0]+1, basename($fullPath))); } header("Content-Disposition: attachment; filename=\"".$newName."\";" ); 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; } } ?>