/** * Creates a new Book model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Book(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { $image = UploadedFile::getInstance($model, 'imageFile'); if (!empty($image)) { $model->image = Yii::$app->security->generateRandomString() . '.' . $image->extension; $path = Yii::$app->basePath . '/' . Book::IMAGES_DIRECTORY . $model->image; $model->save(); $image->saveAs($path); } else { $model->save(); } return $this->redirect(['index']); } else { return $this->render('create', ['model' => $model]); } }
/** * @param Book $model * @param $template * @return array|Response */ protected function save($model, $template) { if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { if ($model->save(false)) { $params = ArrayHelper::merge(['index'], $this->getSession()->get(self::SESSION_PARAMS)); return $this->redirect($params); } else { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } } else { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } } else { return $this->{$this->getCurrentRender()}($template, ['model' => $model, 'authors' => $this->getAuthors()]); } }
public function actionFile() { \Yii::$app->response->format = Response::FORMAT_JSON; if (\Yii::$app->request->isPost) { $book = new Book(); $book->imageFile = UploadedFile::getInstanceByName('imageFile'); $book->bookFile = UploadedFile::getInstanceByName('bookFile'); if (!$book->validate(['imageFile', 'bookFile'])) { \Yii::$app->response->statusCode = 400; return ['status' => 'Err', 'errors' => $book->getErrors()]; } else { if (!empty($book->imageFile)) { $fileDir = \Yii::$app->basePath . '/web/image/book/tmp/1/'; if (!file_exists($fileDir)) { mkdir($fileDir, 0755, true); } array_map('unlink', glob(\Yii::$app->basePath . $fileDir . '*')); $book->imageFile->saveAs($fileDir . $book->imageFile->baseName . '.' . $book->imageFile->extension); } if (!empty($book->bookFile)) { $fileDir = \Yii::$app->basePath . '/files/tmp/book-form/1/book-file/'; if (!file_exists($fileDir)) { mkdir($fileDir, 0755, true); } $book->bookFile->saveAs($fileDir . $book->bookFile->baseName . '.' . $book->bookFile->extension); } \Yii::$app->response->statusCode = 200; return ['status' => 'OK']; } } if (\Yii::$app->request->isGet) { if (!empty(\Yii::$app->request->get('remove')) && !empty(\Yii::$app->request->get('file'))) { unlink(\Yii::$app->basePath . '/files/tmp/book-form/1/book-file/' . \Yii::$app->request->get('file')); \Yii::$app->response->statusCode = 200; return ['status' => 'OK']; } } }