user->id)){ return 'user_'.Yii::$app->user->id; }else { return 'guest'; } } private function deleteImages($old_img){ if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){ $rootDir = explode("/", $old_img); $row = $_SERVER['DOCUMENT_ROOT'].'/'.$rootDir[1].'/'.$rootDir[2].'/'.$rootDir[3].'/'; $allFiles = scandir($row); $allFiles = array_slice($allFiles, 2); foreach($allFiles as $oldFile){ unlink($row.$oldFile); } } } public function actionDeleteImage(){ $request = Yii::$app->request->post(); if($request){ if ($request['old_img']) { $this->deleteImages($request['old_img']); } if(isset($request['action']) && $request['action']=='save'){ $object = str_replace('-', '\\',$request['model']); $model = new $object; $model = $model->findOne($request['id']); $model->$request['field'] = $request['new_url']; $model->save(); } } } public function actionDownloadPhoto() { $model = new ImageSizerForm(); $request = Yii::$app->request->post(); if ($request) { $model->multi = isset($request['multi'])? 1 : 0; $model->file = UploadedFile::getInstance($model, 'file'); $md5_file = md5_file($model->file->tempName).rand(1, 1000); $imgDir = Yii::getAlias('@storage/'.$this->getUserPath().'/'.$md5_file.'/'); $imageOrigAlias = Yii::getAlias($imgDir.'original'.'.'.$model->file->extension); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $model->file->saveAs($imageOrigAlias); if(isset($request['size'] )){ $request['size'] = ArrayHelper::toArray(json_decode($request['size'])); foreach($request['size'] as $size){ if($size['width'] && $size['height']){ $imageAlias = Yii::getAlias($imgDir.$size['width'].'x'.$size['height'].'.'.$model->file->extension); $imageLink = '/storage/'.$this->getUserPath().'/'.$md5_file.'/'.$size['width'].'x'.$size['height'].'.'.$model->file->extension; $resizer = new UploaderComponent(); $resizer->resizeImg($size['width'], $size['height'], $imageOrigAlias,$imageAlias); } } } else { $imageLink = '/storage/'.$this->getUserPath().'/'.$md5_file.'/'.'original'.'.'.$model->file->extension; } if($model->multi){ $view = $this->renderPartial('@common/widgets/views/_gallery_item', [ 'item' => ['image'=>$imageLink], ]); return json_encode(['link'=>$imageLink, 'view' =>$view]); } else { return json_encode(['link'=>$imageLink]); } } } public function getex($filename) { return end(explode(".", $filename)); } public function actionImagesUpload(){ if($_FILES['upload']) { if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name'])) ) { $message = "Вы не выбрали файл"; } else if ($_FILES['upload']["size"] == 0 OR $_FILES['upload']["size"] > 2050000) { $message = "Размер файла не соответствует нормам"; } else if (($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png") AND ($_FILES['upload']['type'] != 'image/gif')) { $message = "Допускается загрузка только картинок JPG и PNG."; } else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) { $message = "Что-то пошло не так. Попытайтесь загрузить файл ещё раз."; } else{ $name =$_FILES['upload']['name'].'.'.$this->getex($_FILES['upload']['name']); $path = "../../storage/".$this->getUserPath()."/images/"; if(!is_dir($path)) { mkdir($path, 0755, true); } move_uploaded_file($_FILES['upload']['tmp_name'], $path.$name); $full_path = '/storage/'.$this->getUserPath().'/images/'.$name; $message = "Файл ".$_FILES['upload']['name']." загружен"; } $callback = $_REQUEST['CKEditorFuncNum']; echo ''; } } }