Foros del Web » Programando para Internet » PHP »

¿Borrar imagen en php?

Estas en el tema de ¿Borrar imagen en php? en el foro de PHP en Foros del Web. me lanza el siguiente error Warning: unlink() [function.unlink]: http does not allow unlinking in C:\xampp\htdocs\oceanodeanuncios\Eliminarfoto.php on line 2 el archivo contiene esto @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 12/12/2013, 23:05
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
¿Borrar imagen en php?

me lanza el siguiente error
Warning: unlink() [function.unlink]: http does not allow unlinking in C:\xampp\htdocs\oceanodeanuncios\Eliminarfoto.php on line 2

el archivo contiene esto
Código PHP:
Ver original
  1. <?
  2. unlink($_POST['foto']);
  3.  ?>

es la ruta completa, de la foto, ya la imprimi y es correcta, pero alguien sabe donde permitir eso, en que parte?
y que aparte funcione en un servidor externo.
cabe destacar que llamo el archivo por ajax.
de antemano gracias.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 13/12/2013, 08:43
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: ¿Borrar imagen en php?

Cuando tengas este tipo de advertencias y si no sabes ingles, por lo menos ve a Google Traductor y trata de traducir tu error:

Cita:
Advertencia: unlink () [function.unlink]: no permite acceso http
Ahora queda mas claro?

No puedes usar el protocolo http:// para eliminar archivos con unlink por motivos de seguridad. Debes de pasar es la ruta física

C:\ruta\archivo\ windows
/home/ruta/archivo unix

Aunque claro lo mas recomendable es solo recibir el nombre del archivo y tu, por medio de php, contruir la ruta física absoluta hasta el archivo (funciones como realpath te podrían ayudar a hacer esto)

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 13/12/2013, 09:43
 
Fecha de Ingreso: septiembre-2008
Mensajes: 43
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: ¿Borrar imagen en php?

$_POST['foto'] no almacena el archivo... debería ser algo como $_FILES['foto']['tmp_name'] o tiene que ser una ruta tal y como te dijo jonni09lo
  #4 (permalink)  
Antiguo 13/12/2013, 10:06
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: ¿Borrar imagen en php?

Cita:
Iniciado por santi- Ver Mensaje
$_POST['foto'] no almacena el archivo... debería ser algo como $_FILES['foto']['tmp_name'] o tiene que ser una ruta tal y como te dijo jonni09lo
Estás asegurando algo que no sabes si es así o no... Hay dos errores en tu apreciación: El primero es que no lees bien, si notas $_POST llega con algo, una url con http:// por ello se genera el error y segundo es absurdo eliminar una imagen temporal de $_FILES

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 13/12/2013, 21:44
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: ¿Borrar imagen en php?

Gracias compañeros ya resolvi la cuestion, y es que como dicen, no se permite borrar con la ruta completa http debido a que seria un problema de segurida, entonces solo pondria la ruta de una foto de face de alguien y ejecuto mi codigo y borraria la foto de face.
lo que use fueron rutas relativas
carpeta/imagen.jpg.

la ruta la almaceno en POST es por eso que la leia de alli, debido a que se la estoy mandando por ajax.
de antemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #6 (permalink)  
Antiguo 14/12/2013, 03:26
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: ¿Borrar imagen en php?

¿Eres consciente de que con algo así, te puedo borrar todos los archivos de la web, incluyendo index.php, no?
  #7 (permalink)  
Antiguo 15/12/2013, 18:07
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: ¿Borrar imagen en php?

Cita:
Iniciado por marlanga Ver Mensaje
¿Eres consciente de que con algo así, te puedo borrar todos los archivos de la web, incluyendo index.php, no?
no entendí muy bien.
¿de la manera como estoy haciéndola es posible eso?

entonces cual seria la sugerencia de borrado de fotos?
yo ya hice otra cosa, solo envio el nombre del archivo por ajax, le verifico que sea imagen, luego armo la ruta en php con el nombre del archivo y me aseguro que sea la carpeta del usuario.
no es necesario ver si la foto existe total no pasa nada.

de antemano gracias, espero tu sugerecia..
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #8 (permalink)  
Antiguo 16/12/2013, 03:40
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: ¿Borrar imagen en php?

Yo te puedo mandar por post un "../index.php" para borrarte el index, y recargo tu página.
Si no ha sido borrado, probaría "../../index.php", hastq que finalmente te borre el index.

Para solucionarlo, una de dos:

Pasa solo el nombre de la foto, sin el directorio. PHP recogerá ese $_POST, borrará todos los caracteres "/" de ese $_POST, y añádele por delante el directorio real donde están las fotos, y la borrará si existe. Si las fotos están repartidas en varios directorios, tendrás que pensar alguna forma de saber el diretorio donde está la foto, sin enviar nunca nombre de directorios por el formulario.

O coge la ruta de la imagen que te llega, y comprueba que el fichero que se va a borrar es una imagen, y que está en una carpeta autorizada para el borrado.

O una mezcla de ambas. O imagina alguna forma de controlar los borrados.
Programar es pensar, conocer la sintaxis es fácil.
  #9 (permalink)  
Antiguo 16/12/2013, 07:54
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: ¿Borrar imagen en php?

Tienes que borrar el archivo desde su ubicacion si lo haces con el post el archivo todavia no esta en el servidor
Código PHP:
Ver original
  1. $carpeta="images/miimagen.jpg";
  2. unlink($carpeta);
__________________
clasificados nunca se sabe todo
  #10 (permalink)  
Antiguo 16/12/2013, 07:57
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: ¿Borrar imagen en php?

Cita:
Iniciado por alexperaza Ver Mensaje
Tienes que borrar el archivo desde su ubicacion si lo haces con el post el archivo todavia no esta en el servidor
Código PHP:
Ver original
  1. $carpeta="images/miimagen.jpg";
  2. unlink($carpeta);
Otro desubicado que manía tienen de responder sin leer bien. El sistema es un formulario que permite eliminar archivos por método POST (seleccionas el archivo y lo eliminas) lo que se está discutiendo actualmente es la manera correcta de hacerlo para evitar que algún malintencionado empiece a borrar archivos sin control.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:37.