删除CodeIgniter中的文件夹

时间:2018-07-03 12:21:18

标签: php directory codeigniter-3 rmdir

更新:我已经解决了,我不知道如何解决,但是现在可以了,这是新的更新功能,以防将来任何用户遇到类似的问题。

假设$ id var来自获取要删除的数据的当前ID的函数,并假定您已经具有根据用户名创建文件夹的函数,那么下面的命令应该起作用!

public function delete($id)
    {
        $this->db->where('id', $id);
        $this->db->delete($this->table);


        // If users closes his account, all of his folders should be deleted as well
        $item = $this->get($id)->username;
        //varDebug($item);
        delete_files(FCPATH."assets/img/users/avatars/".$item, TRUE);
        delete_files(FCPATH."assets/img/users/covers/".$item, TRUE);
        delete_files(FCPATH."assets/img/users/status/".$item, TRUE);
        rmdir("assets/img/users/avatars/".$item);
        rmdir("assets/img/users/covers/".$item);
        rmdir("assets/img/users/status/".$item);
    }

我有一个注册表格,用户可以在其中注册以在我的应用程序中创建自己的帐户,并且给他们机会上传自己的图片等。到目前为止一切正常。

当用户和/或管理员删除用户帐户时,就会出现问题。例如,作为管理员,我决定删除Brian的帐户,同时删除他的所有文件夹。

当前输出是它删除每个(如果有多个帐户的话)文件夹而不是他自己的帐户。

这就是我模型中的内容:

public function delete($id)
    {
        $this->db->where('id', $id);
        $this->db->delete($this->table);


        // If users closes his account, all of his folders should be deleted as well
        $item = $this->get($id);
        delete_files("assets/img/users/avatars/".$item['username']."/", TRUE);
        delete_files("assets/img/users/covers/".$item['username']."/", TRUE);
        delete_files("assets/img/users/status/".$item['username']."/", TRUE);
        rmdir("assets/img/users/avatars/".$item['username']."/");
        rmdir("assets/img/users/covers/".$item['username']."/");
        rmdir("assets/img/users/status/".$item['username']."/");
    }

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您需要提供指向delete_files()的完整路径。轻松完成。只需将FCPATH添加到路径的开头即可。假设assetsapplicationsystem处于同一级别。进行相应的调整。

FCPATHindex.php所在文件夹的绝对路径。

delete_files(FCPATH."assets/img/users/avatars/".$item['username'], TRUE);

您不需要在路径上添加斜线。如果这样做没有害处,但是delete_files()仍会删除它。