Функция отмены связи не удалась с codeigniter - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу удалить изображение спустя долгое время после обновления нового изображения.Я добавил 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 голосов
/ 12 февраля 2019

В вашем коде вы не получаете старое имя изображения из БД

Сначала получите старое имя изображения, а затем попробуйте так:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...