public function actionDeleteFile() { $modelID = Yii::$app->request->post('modelId'); $modelName = Yii::$app->request->post('modelName'); $attribute = Yii::$app->request->post('attribute'); $language = Yii::$app->request->post('language'); if (Yii::$app->request->isAjax && $modelID && $modelName && $attribute) { $error = true; /** @var $model ActiveRecord */ if ($language) { $model = $modelName::find()->where(['model_id' => $modelID, 'language' => $language])->one(); } else { $model = $modelName::findOne($modelID); } if ($model) { $fileId = $model->{$attribute}; $model->{$attribute} = null; if ($model->save(false)) { FPM::deleteFile($fileId); $error = false; } } return Json::encode(['error' => $error]); } return false; }
/** * @return string */ public function actionDeleteImage() { $returnData = []; $id = \Yii::$app->request->get('id'); if ($id) { $imageEntity = EntityToFile::find()->where('id = :id', [':id' => (int) $id])->one(); if ($imageEntity) { $fileId = $imageEntity->file_id; if ($imageEntity->delete()) { FPM::deleteFile($fileId); } else { $returnData[] = ['error' => 'Не удалось удалить файл']; } } else { $returnData[] = ['error' => 'Информация о изображении не найдена']; } } return Json::encode($returnData); }
/** * Validate file, and delete old file * * @param \yii\base\Event $event * * @return bool */ public function afterValidate($event) { $file = \yii\web\UploadedFile::getInstance($this->owner, $this->attribute); if (!$file && !$this->required) { return true; } $oldFileId = $this->owner->{$this->attribute}; if (!$file && $oldFileId) { return true; } if ($this->validateFile($file)) { $this->owner->{$this->attribute} = $this->getValue($file); \metalguardian\fileProcessor\helpers\FPM::deleteFile($oldFileId); return true; } return false; }
/** * @param $id */ private function delete($id) { if ($id) { FPM::deleteFile($id); } }