private function SaveImages($model) { if (!\Helpers\Arr::is_array_empty($_FILES['News']['tmp_name'])) { $path = 'uploads' . DIRECTORY_SEPARATOR . 'news' . DIRECTORY_SEPARATOR . 'images_id_' . $model->id; $errors = array(); $images = $model->getImages(); if ($images) { $num = count($images); } else { $num = $this->config->application->images_number; } foreach ($_FILES['News']['tmp_name'] as $key => $tmp_name) { if ($key >= $num) { break; } $file_name = $_FILES['News']['name'][$key]; $file_size = $_FILES['News']['size'][$key]; $file_tmp = $_FILES['News']['tmp_name'][$key]; $file_type = $_FILES['News']['type'][$key]; if (\Helpers\CFileHelper::is_kir($file_tmp)) { $nameParts = explode('.', $file_tmp); $imageName = \Helpers\Translite::$rustable($nameParts[0]) . '.' . $nameParts[1]; } if ($file_size > 259715) { $errors[] = 'Размер файла не больше 2 мегабайт'; } $extensions = array("gif", "jpg", "png", "jpeg"); $file_ext = explode('.', $file_name); $file_ext = strtolower(end($file_ext)); if (in_array($file_ext, $extensions) === false) { $errors[] = "Недопустимый формат файла, допускаются изображения форматов: jpg, gif, png, jpeg"; } if (empty($errors) == true) { if (is_dir($path) == false) { mkdir("{$path}", 0777); // Create directory if it does not exist } if (is_dir("{$path}/" . $file_name) == false) { move_uploaded_file($file_tmp, $path . DIRECTORY_SEPARATOR . $file_name); } } else { foreach ($errors as $error) { $this->flashSession->error((string) $error); } return $this->response->redirect("backend/news/edit/{$model->id}"); } } } }
/** * Возвращает изображения * @return array массив, содержащий данные о изображениях вида * array(array('name'=>'', 'path'=>'', 'thumb_name'=>'', 'thumb_path'=>'')) */ public function getImages() { if (!$this->_dir) { $this->_dir = 'public/uploads/articles/images_id_' . $this->id; //mkdir($this->_dir, 0777, true); } $itemImageFolder = __DIR__ . '/../../' . $this->_dir; $result = array(); if (is_dir($itemImageFolder)) { $images = \Helpers\CFileHelper::findFiles($itemImageFolder, array('fileTypes' => array('jpg', 'gif', 'png'), 'level' => 0)); //Обрабатываем данные для получения приемлимого формата foreach ($images as $image) { $imageData['path'] = $image; //Получаем имя файла $nameData = explode('/', str_replace("\\", "/", $image)); $imageData['name'] = $nameData[count($nameData) - 1]; $result[] = $imageData; } } return $result; }