¿Cómo elimino un archivo de mi servidor con PHP si el archivo está en otro directorio?
Aquí está mi diseño de página:
projects/backend/removeProjectData.php
(este archivo elimina todas mis entradas para la base de datos y también debe eliminar el archivo relacionado)public_files/22.pdf
(el lugar donde se encuentra el archivo).
Estoy usando la unlink
función:
unlink('../../public_files/' . $fileName);
Pero esto siempre me da un error de que el archivo no existe. ¿Algunas ideas?
Respuestas:
Lo siguiente debería ayudar
realpath
- Devuelve el nombre de ruta absoluto canonicalizadois_writable
- Indica si el nombre del archivo se puede escribirunlink
- Elimina un archivoEjecute su ruta de archivo a través de realpath, luego verifique si la ruta devuelta es editable y, de ser así, desvincule.
fuente
fuente
file_exists
función. De lo contrario, recibirá un error si el archivo no existe.Verifique sus permisos en primer lugar en el archivo, para asegurarse de que pueda a) verlo desde su script yb) pueda eliminarlo.
También puede usar una ruta calculada a partir del directorio en el que está ejecutando el script, por ejemplo:
(en PHP 5.3, creo que puede usar la
__DIR__
constante en lugar dedirname()
pero todavía no la he usado)fuente
Puede eliminar el archivo usando
pero si está eliminando un archivo de su ruta http, entonces este desvío no funciona correctamente. Tienes que dar una ruta de archivo correcta.
fuente
Solución AIO, maneja todo, no es mi trabajo, pero me acabo de mejorar. ¡Disfrutar!
fuente
unlink
como nombre para su función.Sé que esta pregunta es un poco vieja, pero es algo simple que me funciona muy bien para eliminar imágenes de mi proyecto en el que estoy trabajando.
La
dirname(__FILE__)
sección imprime la ruta base de su proyecto. El/img/tasks/
son dos carpetas por debajo de mi ruta de la base. Y finalmente, está mi imagen que quiero eliminar, que puedes convertir en lo que necesites.Con esto no he tenido ningún problema para acceder a mis archivos en mi servidor y eliminarlos.
fuente