/** * Автоматическая установка всех полей в записи из запроса * * @param array $array */ public function setAttributes(array $array) { foreach ($this->fieldsProperty() as $field => $property) { if ($property['type'] == FIELD_UPLOADABLE) { // загрузка файлов из загружаемых полей if (array_key_exists($this::getClassName(), $_FILES)) { if ($_FILES[$this::getClassName()]['tmp_name'][$field] !== "") { $fileName = CUtils::toTranslit($_FILES[$this::getClassName()]['name'][$field]); $fileName = date("dmY_His") . "_" . $fileName; /** * Проверяем, что upload_dir существует * Если его нет, то создадим */ $uploadDir = $property["upload_dir"]; $uploadDir = explode(CORE_DS, $uploadDir); $checkPath = CORE_DS; foreach ($uploadDir as $path) { if ($path !== "") { $checkPath .= $path . CORE_DS; if (!file_exists($checkPath)) { mkdir($checkPath, 0777); } } } while (file_exists($property['upload_dir'] . $fileName)) { $fileName = date("dmY_His") . "_" . $fileName; } move_uploaded_file($_FILES[$this::getClassName()]['tmp_name'][$field], $property['upload_dir'] . $fileName); $array[$field] = $fileName; } } } } foreach ($array as $key => $value) { $this->{$key} = $value; } }