Cheetah
ctrl.php
Go to the documentation of this file.
1 <?php
7 include './FileAPI.class.php';
8 
9 
10 if( !empty($_SERVER['HTTP_ORIGIN']) ){
11  // Enable CORS
12  header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
13  header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
14  header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Range, Content-Disposition, Content-Type');
15  header('Access-Control-Allow-Credentials: true');
16 }
17 
18 
19 if( $_SERVER['REQUEST_METHOD'] == 'OPTIONS' ){
20  exit();
21 }
22 
23 
24 if( strtoupper($_SERVER['REQUEST_METHOD']) == 'POST' ){
25  $files = FileAPI::getFiles(); // Retrieve File List
26  $images = array();
27 
28 
29  // Fetch all image-info from files list
30  fetchImages($files, $images);
31 
32 
33  // JSONP callback name
34  $jsonp = isset($_REQUEST['callback']) ? trim($_REQUEST['callback']) : null;
35 
36 
37  // JSON-data for server response
38  $json = array(
39  'images' => $images
40  , 'data' => array('_REQUEST' => $_REQUEST, '_FILES' => $files)
41  );
42 
43 
44  // Server response: "HTTP/1.1 200 OK"
46  'status' => FileAPI::OK
47  , 'statusText' => 'OK'
48  , 'body' => $json
49  ), $jsonp);
50  exit;
51 }
52 
53 
54 
55 
56 function fetchImages($files, &$images, $name = 'file'){
57  if( isset($files['tmp_name']) ){
58  $filename = $files['tmp_name'];
59  list($mime) = explode(';', @mime_content_type($filename));
60 
61  if( strpos($mime, 'image') !== false ){
62  $size = getimagesize($filename);
63  $base64 = base64_encode(file_get_contents($filename));
64 
65  $images[$name] = array(
66  'width' => $size[0]
67  , 'height' => $size[1]
68  , 'mime' => $mime
69  , 'size' => filesize($filename)
70  , 'dataURL' => 'data:'. $mime .';base64,'. $base64
71  );
72  }
73  }
74  else {
75  foreach( $files as $name => $file ){
76  fetchImages($file, $images, $name);
77  }
78  }
79 }
80 ?>
header
</code > Be careful enabling this directive if you have a redirector script that does not use the< code > Location</code > HTTP header
Definition: URI.MungeResources.txt:10
FileAPI\getFiles
static getFiles()
Definition: FileAPI.class.php:93
fetchImages
if(!empty($_SERVER['HTTP_ORIGIN'])) if( $_SERVER['REQUEST_METHOD']=='OPTIONS') if(strtoupper($_SERVER['REQUEST_METHOD'])=='POST') fetchImages($files, &$images, $name='file')
Definition: ctrl.php:56
FileAPI\OK
const OK
Definition: FileAPI.class.php:3
php
FileAPI\makeResponse
static makeResponse(array $res, $jsonp=null)
Definition: FileAPI.class.php:114
null
Attr AllowedClasses this is null
Definition: Attr.AllowedClasses.txt:6
exit
exit
Definition: cart.php:21
$_REQUEST
$_REQUEST['action']
Definition: cmd.php:11
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10