downloadPlot.php
2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?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'] == "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;
}
}
?>