[ // 'class' => AccessControl::className(), // 'rules' => [ // [ // 'allow' => true, // 'roles' => [ '@' ], // ], // ], // ], 'verbs' => [ 'class' => \yii\filters\VerbFilter::className(), 'actions' => [ '*' => [ 'post' ], ], ], ]; } /** * Handle ajax file uploading * * @return array */ public function actionUpload() { $request = \Yii::$app->request; $response = \Yii::$app->response; $response->format = $response::FORMAT_JSON; $model = new Fileloader(); $model->files = UploadedFile::getInstance($model, 'files'); if(!empty( $model->files )) { $file_id = $model->saveFile($model->files); if(!empty( $file_id )) { $child_model = $request->post('model', $model->className()); $child_model = new $child_model([ 'file' => $file_id ]); $input = Html::activeHiddenInput($child_model, 'fileloader[]', [ 'value' => $file_id, 'class' => 'fileloader-item-input', ]); return [ 'result' => [ 'file_id' => $file_id, 'file_name' => $model->name, 'file_href' => $model->dir, 'input' => $input, 'id' => $request->post('id'), ], ]; } else { return [ 'error' => 'Ошибка сохранения файла' ]; } } return [ 'error' => 'Ошибка загрузки' ]; } /** * Handle ajax file deleting * * @return array */ public function actionDelete() { /** * @var Fileloader $model */ if(empty(\Yii::$app->user->identity)) { throw new ForbiddenHttpException(); } $request = \Yii::$app->request; $response = \Yii::$app->response; $response->format = $response::FORMAT_JSON; if(empty( $request->post('id') )) { return [ 'error' => 'Не указан id файла' ]; } $model = Fileloader::find() ->where([ 'file_id' => $request->post('id'), 'user_id' => \Yii::$app->user->getId(), ]) ->one(); if(empty( $model )) { return [ 'error' => 'Файл не найден' ]; } if($model->delete()) { return [ 'result' => [ 'message' => 'Файл успешно удален' ] ]; } else { return [ 'error' => 'Ошибка удаления файла' ]; } } }