我的删除功能不会删除目标文件

时间:2010-03-13 10:24:56

标签: php codeigniter

基本上我可以根据项目上传文件。每当我创建项目时,都会创建一个新目录,其目录名称为project_name,例如:这是一个测试 - >这是一个测试。但我的问题是我无法删除目录中的文件。

function delete_image($id)
{
    $this->load->model(array('work_model', 'project_model'));
    $result = $this->work_model->get_work($id);
    $result = $this->project_model->get_project($result->project_id);
    $dir = str_replace(" ", "-", $result->project_name);
    $result = $this->work_model->delete($id);
    if (isset($result)){
        unlink('./uploads/' . $dir . '/' . $result->full_path);  
    }
    redirect('admin/project/view_project/' . $result->project_id);
}

需要帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

错误信息是不言自明的 $ result不是对象。

你的问题是调试问题,而不是问题。当然,阅读错误信息的问题。如果您已经从PHP获得解释,为什么要问这里出了什么问题?而且,另一方面,没有人知道你的代码,也不知道应该返回什么类型的变量get_work($ id)。

答案 1 :(得分:0)

这条线很精彩:

if (isset($result)){

当然已设定,你已经设定了3次!

为您返回的每个结果使用不同的变量名称。为什么不使用:

function delete_image($id)
{
$this->load->model(array('work_model', 'project_model'));
$work = $this->work_model->get_work($id);
$project = $this->project_model->get_project($work->project_id);
$dir = str_replace(" ", "-", $project->project_name);

if ($this->work_model->delete($id))
{
    unlink('./uploads/' . $dir . '/' . $project->full_path);  
}
redirect('admin/project/view_project/' . $project->project_id);
}

如果不起作用,请尝试一些调试步骤。

var_dump($this->work_model->delete($id));

这会告诉你TRUE / FALSE,我现在假设它是FALSE,这就是unlink没有错误或成功的原因。

调试是前进的方向。我们不能为你做到这一点!

相关问题