UNLINK no funciona con extension JPEG
Publicado por Alejandro (172 intervenciones) el 21/12/2020 11:07:16
Hola buenos días, veréis tengo el siguiente código:
Tengo un formulario en el que un campo es seleccion de una foto de perfil. Lo que hago es guardar los archivos en el sistema de archivos y la ruta en una base de deatos MYSQL. Cuando modifico la foto de perfil elimino la antigua con unlink comprobando si existe archivo en la ruta que le paso al IF. El problema que tengo es que con archivo de diferentes extensiones unlink no elimina el archivo del sistema de archivos locales.
Por ejemplo, si tengo guardado un archivo en PNG pero luego elijo otro archivo con extension JPG Unlink no lo elimina. Sin embargo con la misma extension si lo hace. A que puede deberse???
Gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include("conexion.php");
$id=(isset($_GET['id']))?$_GET['id']:"";
$nombre = (isset($_POST['nombre']))?$_POST['nombre']:"";
$apellido1 = (isset($_POST['apellido1']))?$_POST['apellido1']:"";
$apellido2 = (isset($_POST['apellido2']))?$_POST['apellido2']:"";
//subida a directorio de foto de perfil
$archivo = (isset ($foto)) ? $foto: NULL;
$archivo_destino = NULL;
if ($archivo) {
$extension = pathinfo($archivo['name'], PATHINFO_EXTENSION);
$extension = strtolower($extension);
if ($extension == "jpg" or $extension == "jpeg" or $extension == "png"){
$nombreArchivo = pathinfo($archivo['name'], PATHINFO_FILENAME);
if($nombreArchivo == $nombre." ".$apellido1." ".$apellido2){
$archivo_destino = "documentos/imagenes_perfil/".basename($archivo['name']);
if(file_exists($archivo_destino)){
unlink($archivo_destino);
$archivo_ok = move_uploaded_file($archivo['tmp_name'], $archivo_destino);
}else{
$archivo_ok = move_uploaded_file($archivo['tmp_name'], $archivo_destino);
}
}else{
echo "Debes subir la imagen de perfil con el nombre del usuario con este formato: <i>Maria Perez Gonzalez</i><br>";
}
}else if($extension==""){
//NADA
}else if($extension!=="jpg" or $extension!=="png"){
echo "La extension de la imagen no es JPG o PNG<br/>";
}
}
cerrarBD();
?>
Tengo un formulario en el que un campo es seleccion de una foto de perfil. Lo que hago es guardar los archivos en el sistema de archivos y la ruta en una base de deatos MYSQL. Cuando modifico la foto de perfil elimino la antigua con unlink comprobando si existe archivo en la ruta que le paso al IF. El problema que tengo es que con archivo de diferentes extensiones unlink no elimina el archivo del sistema de archivos locales.
Por ejemplo, si tengo guardado un archivo en PNG pero luego elijo otro archivo con extension JPG Unlink no lo elimina. Sin embargo con la misma extension si lo hace. A que puede deberse???
Gracias de antemano.
Valora esta pregunta


0