php - libreria - Cómo desvincular(eliminar) una imagen en CodeIgniter
libreria upload codeigniter (7)
Primero revise su nombre de entrada de archivo. ¿Es "userfile" o no? si no, agréguelo y ejecútelo nuevamente.
Intento unlink
una imagen en CodeIgniter, pero la función de unlink
muestra:
aviso Índice indefinido: archivo de usuario
Aquí está mi código
<?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);
}
?>
prueba este código
unlink(base_url().''/image/logo_thumb''.$logo_thumb);
Nota: No asignó / declaró $logo_thumb
en su deleteconf()
.
Por favor revisa tu código.
la función de desenlazar muestra el aviso índice indefinido:
userfile
El formulario de carga, utilizando multipart / form-data
Asegúrese de haber utilizado el atributo / valor enctype="multipart/form-data"
para su formulario de carga.
<form action="" method="post" accept-charset="utf-8" enctype="multipart/form-data">
Desde el MDN :
enctype
multipart/form-data
: utilice este valor si está utilizando un elemento<input>
con el atributo de tipo establecido en "archivo".
Si va a utilizar CodeIgniter form helper , puede usar la función form_open_multipart()
:
Esta función es absolutamente idéntica a la etiqueta
form_open()
anterior, excepto que agrega un atributo deform_open()
partes, que es necesario si desea utilizar el formulario para cargar archivos.
Eliminar archivos, ruta de archivo vs dirección URL
La función PHP unlink()
acepta la ruta del archivo como primer argumento. No es la dirección URL .
La función de ayuda base_url()
devuelve la dirección URL del sitio, que ha establecido en el archivo config.php
.
Tendrá que usar la ruta del archivo en su servidor, de la siguiente manera:
unlink(''/path/to/image/image_name.jpg''); // This is an absolute path to the file
Puede usar una ruta absoluta o relativa , pero tenga en cuenta que la ruta relativa es relativa al archivo index.php
. es decir, si la image/
carpeta se coloca junto index.php
archivo index.php
, debe usar image/image_name.jpg
como la ruta del archivo:
unlink(''image/image_name.jpg''); // This is a relative path to the file
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");
solo agrega la línea anterior antes de desvincular
unlink($path);
Si desea cargar una foto para el perfil del usuario y también en el momento en que la foto del usuario anterior debe eliminarse mediante el método de desvinculación en codeignitor
$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'');
}
¿Puedes usar este código para eliminar la imagen en la carpeta?
desvincular (realpath (''uploads /''. $ _image));
"cargas": la imagen existe en la carpeta de carga. "$ _image": nombre del archivo de imagen
Funciones de PHP: 1: desvincular () 2: realpath ()
El código anterior funciona con éxito en mi sitio para eliminar la imagen en la carpeta.