Как отключить (удалить) изображение в CodeIgniter

Я пытаюсь unlink изображение в CodeIgniter, но функция unlink показывает:

уведомление Неопределенный индекс: файл пользователя

Вот мой код

 <?php function get_from_post(){ $data['logo_name'] = $this->input->post('logo_name',TRUE); $data['logo_thumb'] = $_FILES['userfile']['name']; return $data; } function deleteconf($data){ $data= $this->get_from_post(); $update_id=$this->uri->segment(3); @unlink(base_url.'image/logo_thumb'.$logo_thumb); $query= $this->_delete($update_id); } ?> 

функция unlink показывает уведомление Undefined index: userfile

Форма загрузки с использованием данных multipart / form

Убедитесь, что вы используете атрибут / значение enctype="multipart/form-data" для вашей формы загрузки.

 <form action="" method="post" accept-charset="utf-8" enctype="multipart/form-data"> 

Из MDN :

ENCTYPE
multipart/form-data : используйте это значение, если вы используете элемент <input> с атрибутом type, установленным в «file».

Если вы собираетесь использовать помощник формы CodeIgniter, вы можете использовать form_open_multipart() :

Эта функция абсолютно идентична form_open() за исключением того, что она добавляет атрибут multipart, что необходимо, если вы хотите использовать форму для загрузки файлов.

Удаление файлов, путь к файлу и URL-адрес

Функция PHP unlink() принимает путь к файлу в качестве первого аргумента. Не URL-адрес .

Вспомогательная функция base_url() возвращает URL-адрес сайта, который вы установили в файле config.php .

Вам нужно будет использовать путь к файлу на вашем сервере, как показано ниже:

 unlink('/path/to/image/image_name.jpg'); // This is an absolute path to the file 

Вы можете использовать абсолютный или относительный путь, но обратите внимание, что относительный путь относится к index.php . т.е. если папка image/ находится рядом с файлом index.php , вы должны использовать image/image_name.jpg в качестве пути к файлу:

 unlink('image/image_name.jpg'); // This is a relative path to the file 

попробуйте этот код

 unlink(base_url().'/image/logo_thumb'.$logo_thumb); 

Примечание. Вы не назначили / объявили $logo_thumb в свой deleteconf() .

Проверьте свой код.

Сначала проверьте имя вашего файла. Это «файл пользователя» или нет? если нет, то добавьте его, а затем запустите его еще раз.

 function get_from_post(){ $filename = $_POST['logo_name']; $path = $_SERVER['DOCUMENT_ROOT'].'/projectname/uploads/'.$filename ; if(is_file($path)){ unlink($path); echo 'File '.$filename.' has been deleted'; } else { echo 'Could not delete '.$filename.', file does not exist'; } } 
 $this->load->helper("file"); 

просто добавьте выше строки перед отключением

 unlink($path); 

Если вы хотите загрузить фотографию для профиля пользователя, а также в то время, когда старую фотографию пользователя следует удалить с помощью метода unlink в кодедикторе

 $query = $this->db->where('profile_id',$profile_id)->get('users')->row(); $result = $query->photo; $result = http://localhost/abc/user_photo/FE12563.jpg if ($result) { $dd = substr($result, strlen(base_url())); unlink($dd); return $this->db->set('photo',$photo)->where('profile_id',$profile_id)->update('users'); } 

Вы можете использовать этот код для удаления изображения в папке.

unlink (realpath ('uploads /'. $ _image));

«uploads»: изображение существует в папке uploads. "$ _image": имя файла изображения

Функции PHP: 1: unlink () 2: realpath ()

Вышеприведенный код успешно работает на моем сайте, чтобы удалить изображение в папке.