我想在更新新图像后很长时间删除该图像。我已添加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);
}
答案 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;
}