Это мой случай:
Шаг 1. Сначала я проверил, что файл не пустой, если файл пустой, файл обновления не будет работать, если файл загружен из html, тогда я выбрал предыдущую запись из базы данных в переменной $ row (временные переменные).
Шаг 2: После получения предыдущих данных я обновил данные в базе данных, т.е. путь и имя нового файла.
Шаг 3: После что я подтвердил, что пользователь обновляет данные или вставляет новые. Если данные должны быть обновлены, то старое изображение будет удалено.
if($_FILES["img"]["name"]!="")
{
$row=$this->general_model->getSingle("banner", ["id"=>$id]);
$temp=$_FILES["img"]["name"];
$temp=explode(".", $temp);
$ext=end($temp);
$file_name_temp="banner".time().rand(0,9);
$file_name=$save["img"]=$file_name_temp.".".$ext;
$config["file_name"]=$file_name;
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'jpg|jpeg|png';
$config['max_size'] = 1024*10;
enter code here
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('img'))
{`enter code here`
$msg=strip_tags($this->upload->display_errors());
_setFlashSession("msg", "<span class='label label-danger'>$msg</span>");
redirect("admin/site-configure/banner");
}
if($id!="")
{
$file="./uploads/".$row["img"];
unlink($file);
$file="./webp/".$row["webp"];
unlink($file);
}
}