在 CodeIgniter 中删除文件夹
Deleting folder in CodeIgniter
更新:我已经解决了,但我不知道如何解决,但它现在正在运行,这是新的更新功能,以防将来的用户遇到类似问题。
假设 $id 变量来自一个获取被删除数据的当前 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);
}
我有一个注册表单,用户可以在其中注册以在我的应用程序中创建自己的帐户,我给他们机会上传他们自己的照片等。到目前为止一切正常。
当用户 and/or admin 删除用户帐户时出现问题。例如我作为管理员,我决定删除 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']."/");
}
有人可以帮我解决这个问题吗?
您需要提供 delete_files()
的完整路径。轻松搞定。只需将 FCPATH
添加到路径的开头即可。这假设 assets
与 application
和 system
处于同一级别。相应调整。
FCPATH
是 index.php
所在文件夹的绝对路径。
delete_files(FCPATH."assets/img/users/avatars/".$item['username'], TRUE);
您不需要在路径中添加尾部斜杠。这样做也没什么坏处,但 delete_files()
无论如何都会将其剥离。
更新:我已经解决了,但我不知道如何解决,但它现在正在运行,这是新的更新功能,以防将来的用户遇到类似问题。
假设 $id 变量来自一个获取被删除数据的当前 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);
}
我有一个注册表单,用户可以在其中注册以在我的应用程序中创建自己的帐户,我给他们机会上传他们自己的照片等。到目前为止一切正常。
当用户 and/or admin 删除用户帐户时出现问题。例如我作为管理员,我决定删除 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']."/");
}
有人可以帮我解决这个问题吗?
您需要提供 delete_files()
的完整路径。轻松搞定。只需将 FCPATH
添加到路径的开头即可。这假设 assets
与 application
和 system
处于同一级别。相应调整。
FCPATH
是 index.php
所在文件夹的绝对路径。
delete_files(FCPATH."assets/img/users/avatars/".$item['username'], TRUE);
您不需要在路径中添加尾部斜杠。这样做也没什么坏处,但 delete_files()
无论如何都会将其剥离。