Codeigniter的取消链接功能未成功

时间:2019-02-12 09:23:37

标签: codeigniter

我想在更新新图像后很长时间删除该图像。我已添加unlink(),但旧图像并未删除。

控制器:

public function Update()
{ 
    $id = $this->input->post('id');

    $name = $this->input->post('name');

    if($_FILES['image']['name']!="")
    {
        $config['upload_path']   = './image/';
        $config['allowed_types'] ='gif|jpg|png|jpeg|jpe|pdf|doc|docx|rtf|text|txt';
        $this->load->library('upload', $config);
        if($this->upload->do_upload('image')){
            $uploadData = $this->upload->data();
            $image = $uploadData['file_name'];
        }else{
            $image= '';
        }
    }else{
        $image = '';
    }

    $data = array(
        'name'   => $name,
    );

    if($image != ''){
        $data['image'] = $image;
        unlink("./image/$row->file_name");
    }

    $this->model_user->update_user($data,$id);
}

型号:

public function update_user($data, $id)
{
    $this->db->where('id', $id);
    return $this->db->update('table_user', $data);
}

1 个答案:

答案 0 :(得分:0)

在您的代码中,您没有从DB获取旧的图像名称

首先,获取旧的图像名称,然后尝试这样

if($image != ''){
  $data['image'] = $image;
  $oldimage = $this->model_user->get_oldimage($id);
  unlink("path/to/directory/".$oldimage);
}

模型

public function get_oldimage($id){
  return $this->db->get_where('table_user', ['id' => $id])->row()->image;
}