/** * функция получает все необходимые данные о файле * возвращает массив свойств * * @param (string) $path - путь к файлу * @param (string) $file - имя файла * * @return (array) - массив свойств файла */ public function getFileData($path, $file) { $arrData = @stat(filesys::setPath($path) . $file); $ext = filesys::getExtension($file); if (@in_array($ext, $this->arrFileTypes)) { $icon = $ext; } else { $icon = 'undefined'; } $sizekb = sprintf("%01.1f", $arrData['size'] / 1024); $sizemb = sprintf("%01.1f", $arrData['size'] / 1048576); $arrFileData = array('name' => $file, 'icon' => $icon, 'size' => $arrData['size'], 'date' => $arrData['mtime'], 'title_sizekb' => $sizekb, 'title_sizemb' => $sizemb); return $arrFileData; }
/** * функция получает системные данные файле (дата создания, размер и пр.) * возвращает массив свойств (name, path, abspath, ext, size, date, title_sizekb, title_sizemb) * @param (string) $file - полный путь к файлу * @return array or false - массив свойств файла */ static function getFileSystemData($file) { if (!file_exists($file)) { return false; } if (!($arrData = stat($file))) { return false; } $name = basename($file); $path = dirname($file); $abspath = realpath($file); $ext = filesys::getExtension($file); $sizekb = sprintf("%01.1f", $arrData['size'] / 1024); $sizemb = sprintf("%01.1f", $arrData['size'] / 1048576); return array('name' => $name, 'path' => $file, 'abspath' => $abspath, 'ext' => $ext, 'size' => $arrData['size'], 'date' => $arrData['mtime'], 'title_sizekb' => $sizekb, 'title_sizemb' => $sizemb); }
/** * Функция устанавливает свойства файла, необходимые для записи в файл БД * Пока этот метод необходим только для файл-менеджера * * @param (string) $field_name - им поля из формы загрузки файла * @param (array) $fileTypes - массив типов файлов, разрешенных для загрузки (по умолчанию FALSE) * * @return bool */ static function setDBProperties($field_name, $fileTypes) { // проверка на изображение $imgData = getimagesize($_FILES[$field_name]['tmp_name']); // устанавливаем свойства для записи в файл БД self::$fileProperties['filename'] = strtolower($_FILES[$field_name]['name']); self::$fileProperties['ext'] = filesys::getExtension(self::$fileProperties['filename']); self::$fileProperties['name'] = rtrim(self::$fileProperties['filename'], '.' . self::$fileProperties['ext']); self::$fileProperties['path'] = !empty($imgData) ? CONF_FILEMANAGER_PATH_TO_IMAGES : CONF_FILEMANAGER_PATH_TO_FILES; self::$fileProperties['link'] = self::$fileProperties['path']; self::$fileProperties['type'] = !empty($imgData) ? 'image' : 'file'; self::$fileProperties['mime'] = $_FILES[$field_name]['type']; self::$fileProperties['size'] = $_FILES[$field_name]['size']; self::$fileProperties['sizekb'] = sprintf("%01.1f", $_FILES[$field_name]['size'] / 1024); self::$fileProperties['width'] = !empty($imgData) ? $imgData[0] : false; self::$fileProperties['height'] = !empty($imgData) ? $imgData[1] : false; self::$fileProperties['date'] = time(); self::$fileProperties['icon'] = !empty($fileTypes) && is_array($fileTypes) && in_array(self::$fileProperties['ext'], $fileTypes) ? self::$fileProperties['ext'] : 'undefined'; self::$fileProperties['md5'] = md5(self::$fileProperties['filename']); return true; }