public function actionUpload() { Yii::$app->response->format = Response::FORMAT_JSON; if (!Yii::$app->request->isAjax) { throw new BadRequestHttpException(); } $files = UploadedFile::getInstancesByName('files'); $baseDir = Yii::getAlias(Module::getInstance()->basePath); if (!is_dir($baseDir)) { mkdir($baseDir); } $dir = $baseDir . DIRECTORY_SEPARATOR . $_POST['galleryId']; if (!is_dir($dir)) { mkdir($dir); } $response = []; foreach ($files as $key => $file) { if (Module::getInstance()->uniqueName) { $name = $this->getUniqueName($file); } else { $name = $file->name; } $file->saveAs($dir . DIRECTORY_SEPARATOR . $name); $model = new GalleryFile(); $model->galleryId = $_POST['galleryId']; $model->file = $name; if ($model->save()) { $response = ['status' => true, 'message' => 'Success', 'html' => $this->renderAjax('_image', ['model' => $model])]; } break; } return $response; }
/** * Remove model directory with all files */ private function removeModelDirectory() { $dir = Yii::getAlias(Module::getInstance()->basePath . DIRECTORY_SEPARATOR . $this->id); $it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS); $files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); foreach ($files as $file) { if ($file->isDir()) { rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); } } rmdir($dir); }