Я пытаюсь 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
Убедитесь, что вы используете атрибут / значение 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, что необходимо, если вы хотите использовать форму для загрузки файлов.
Функция 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 ()
Вышеприведенный код успешно работает на моем сайте, чтобы удалить изображение в папке.