$json = array();
if (!empty($this->request->post['directory'])) {
$directory = DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']);
} else {
$directory = DIR_IMAGE . 'data/';
}
$allowed = array(
'.jpg',
'.jpeg',
'.png',
'.gif'
);
$files = glob(rtrim($directory, '/') . '/*');
if ($files) {
foreach ($files as $file) {
if (is_file($file)) {
$ext = strrchr($file, '.');
} else {
$ext = '';
}
if (in_array(strtolower($ext), $allowed)) {
$size = filesize($file);
$i = 0;
$suffix = array(
'B',
'KB',
'MB',
'GB',
'TB',
'PB',
'EB',
'ZB',
'YB'
);
while (($size / 1024) > 1) {
$size = $size / 1024;
$i++;
}
$json[] = array(
'filename' => basename($file),
'file' => utf8_substr($file, utf8_strlen(DIR_IMAGE . 'data/')),
'size' => round(utf8_substr($size, 0, utf8_strpos($size, '.') + 4), 2) . $suffix[$i]
);
}
}
}
$this->response->setOutput(json_encode($json));