Pregunta:
Fecha: 08-05-2018 04:31:34
(En Español)
Warning: unlink(../Imagenes/): Permission denied in C:
Warning: unlink(../Imagenes/B612_20161008_100351.jpg): No such file or directory in C:
este es el código:
$registro = mysqli_query($conexion,"select Imagen from persona where'$id_persona';")or
die("Problemas en el select:".mysqli_error($conexion));
while ($reg=mysqli_fetch_array($registro)) {
unlink("../Imagenes/".$reg['Imagen']);
}
$ruta = "../Imagenes/";
opendir($ruta);
$destino = $ruta.$_FILES['foto']['name'];
copy($_FILES['foto']['tmp_name'],$destino);
$nombre=$_FILES['foto']['name'];
Votos: 1 - Respuestas: 2 - Vistas: 9 Compartir en: Google Facebook Twitter LinkedIn Link
Error con unlink() php[Resuelta]
Buenos días, les vuelvo a escribir para que me ayuden con un error que no se solucionar que es este:Warning: unlink(../Imagenes/): Permission denied in C:
Warning: unlink(../Imagenes/B612_20161008_100351.jpg): No such file or directory in C:
este es el código:
$registro = mysqli_query($conexion,"select Imagen from persona where'$id_persona';")or
die("Problemas en el select:".mysqli_error($conexion));
while ($reg=mysqli_fetch_array($registro)) {
unlink("../Imagenes/".$reg['Imagen']);
}
$ruta = "../Imagenes/";
opendir($ruta);
$destino = $ruta.$_FILES['foto']['name'];
copy($_FILES['foto']['tmp_name'],$destino);
$nombre=$_FILES['foto']['name'];
Votos: 1 - Respuestas: 2 - Vistas: 9 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 08-05-2018 07:37:37 Hola, Francis Fernandez.
He notado que estás en un entorno Windows, necesitas darle permiso a tus directorios y ficheros para que la función unlink trabaje sin impedimento del sistema en cuanto a privilegios.
Para la primera advertencia
1. Comandos que juegan con permisos y privilegios: CALCS, TAKEOWN, ATTRIB... Igualmente te dejo este artículo por si te interesa el tema: ¿Cómo cambiar permisos de archivos y carpetas en Windows?
Si estás en Linux, bastará con usar el comando chmod al proyecto, por ejemplo:chmod 755 -R /var/www/ProjectWeb
Para la segunda advertencia
2. No ha encontrado el fichero o directorio para proceder a eliminarlo, por lo tanto se generará un error de nivel E_WARNING. Esto quiere decir que la ruta que está generando con ../, no es la correcta en donde se aloja el fichero que está intentando eliminar.
Le comparto un trozo de código para conseguir la ruta absoluta, ya se en Windows o Linux, también si está usando algún servidor DNS o por medio de IP.$Path = $_SERVER['DOCUMENT_ROOT']."/".explode("/", $_SERVER['REQUEST_URI'])[1]; if (explode("/", $_SERVER['REQUEST_URI'])[1] != "ProjectWeb"){ $Path = $_SERVER['DOCUMENT_ROOT']; }En donde dice "ProjectWeb", debe agregar el nombre de su directorio raíz perteneciente al proyecto, aunque también hay constantes mágicas que puedes utilizar para resolver este conflicto.
Obteniendo el resultado en la variable $Path, sólo hace falta concatenar la dirección al directorio donde se encuentran almacenadas los ficheros o archivos a gestionar. Por ejemplo:$Path = $Path."/app/Imagenes/"; unlink($Path.$reg['Imagen']);
Cuéntame si te ha funcionado. ¡Saludos, Francis! Votos: 1 - Link respuesta -
Fecha: 10-05-2018 09:00:17 No olvide marcar como RESUELTO si ha encontrado la solución. Si ha encontrado otra, que sea diferente a la solución que le compartí, por favor, expongala por acá.
Gracias, Francis. Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
