Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新或删除记录时如何从数据库和文件夹位置永久删除图像_Php_Yii - Fatal编程技术网

Php 更新或删除记录时如何从数据库和文件夹位置永久删除图像

Php 更新或删除记录时如何从数据库和文件夹位置永久删除图像,php,yii,Php,Yii,我有个问题。我的记录有一个图像选项,但当我更新记录或删除记录时,它只会影响数据库表,图像文件仍位于文件夹位置。我读过php的unlink函数,但不知道如何在我的例子中使用它。 这是我的更新和删除操作代码,如果有人知道答案,请与我分享 您可以将$model->save()中的代码更改为此,因此在重定向之前,请检查目录中是否存在旧图像,然后将其删除 $oldThumb = Yii::getPathOfAlias('media') . '/album/optimized/' . $mo

我有个问题。我的记录有一个图像选项,但当我更新记录或删除记录时,它只会影响数据库表,图像文件仍位于文件夹位置。我读过php的unlink函数,但不知道如何在我的例子中使用它。
这是我的更新和删除操作代码,如果有人知道答案,请与我分享

您可以将$model->save()中的代码更改为此,因此在重定向之前,请检查目录中是否存在旧图像,然后将其删除

        $oldThumb = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;
        $oldOptimized = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;

        if ($model->save()) {
            if (file_exists($oldThumb)) {
                unlink($oldThumb);
            }
            if (file_exists($oldOptimized)) {
                unlink($oldOptimized);
            }
            $this->redirect(array('view', 'id' => $model->id));
        }
操作删除必须更改为

    public function actionDelete($id)
    {
        if (Yii::app()->request->isPostRequest) {
// we only allow deletion via POST request
            $model_old_data = $this->loadModel($id);
            $oldThumb = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;
            $oldOptimized = Yii::getPathOfAlias('media') . '/album/optimized/' . $model_old_data->photo;

            $model = $this->loadModel($id);
            if ($model->delete()) {
                if (file_exists($oldThumb)) {
                    unlink($oldThumb);
                }
                if (file_exists($oldOptimized)) {
                    unlink($oldOptimized);
                }
            }

// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
            if (!isset($_GET['ajax'])) {
                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
            }
        } else {
            throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
        }
    }

您需要在此处发布相关代码。您需要粘贴代码