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;
 }
Пример #2
0
 /**
  * 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);
 }