OpenCart 🇺🇦

Схема

public mixed files ( )

Аргументы

Аргумент Возможный тип Описание
У метода нет аргументов

Описание

Метод пока еще не документирован.

Исходный код

$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));