Foros del Web » Programando para Internet » PHP »

error

Estas en el tema de error en el foro de PHP en Foros del Web. Hola amigos, tengo una duda, queria de alguna manera avisar en caso una foto se ha eliminado manualmente o no exista por algun error: Código ...
  #1 (permalink)  
Antiguo 20/05/2009, 11:01
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
error

Hola amigos, tengo una duda, queria de alguna manera avisar en caso una foto se ha eliminado manualmente o no exista por algun error:

Código PHP:
//ELIMINAMOS FOTOS ANTERIORES
//Imagen Normal
$resultImagen mysql_query("select a.imagen_categoria_nombre, b.categoria_nombre from ".TABLE_CATEGORIAS_IMAGENES." a, ".TABLE_CATEGORIAS." b where a.imagen_categoria_id=b.imagen_categoria_id and categoria_id='$codigo'");
$rowImagen mysql_fetch_array($resultImagen);
$IN_existe mysql_num_rows($resultImagen);
    if(
$IN_existe>0){
    
unlink("../images/productos/".$rowImagen[0]);
    }else{
    echo 
'<font style="font-family:Arial, Helvetica, sans-serif; font-size:9px;"><b>Atencion:</b> La imagen de esta categoria ha sido eliminado manualmente. Se procede a reemplazarla.</font><br>';
    } 
Estuve haciendo pruebas pero siempre me sale error en el unlink() porque no encuentra el archivo.... creo que hace caso omiso al mysql_rows, cual es mi error?
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 20/05/2009, 11:12
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: error

hola

tu estás buscando una imagen en una base de datos, que supongo que la debes tener también en tu sistema de archivos. mira a ver que te devuelve en $rowImagen[0], haz un echo de eso, ya que para que tu código funcione debe tener solo el nombre de la imagen y su extensión, algo como "foto.jpg" y claro está, tener esa "foto.jpg" en "../imagesn/productos/foto.jpg"

un saludo
  #3 (permalink)  
Antiguo 20/05/2009, 11:14
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
Respuesta: error

Segun entiendo lo que queres hacer es comprobar si es que el archivo existe, esto lo hace con la funcion file_exists() la funcion unlink() es para borrar archivos.

Saludos!
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #4 (permalink)  
Antiguo 20/05/2009, 11:28
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: error

claro, pero unlink() te tira un error si no existe el archivo en tu directorio, que es lo que te esta pasando, y si ese archivo realmente existe, no le estas dando la ruta correcta incluido lo que recuperas de la base de datos
  #5 (permalink)  
Antiguo 20/05/2009, 12:06
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: error

Lo que hago es una rutina para borrar la imagen de un usuario. lo 'primero que hago es borrar los archivos fisicos y luego los nombres de los archivos de los registros , y bueno lo que hago ahi es buscar por el nombre del archivo

El caso es que cuando existe la imagen (el archivo) en el directorio images/productos .... cuando ejecuto el unlink() , lo borra con toda normalidad.

Pero en otro caso yo voy a ese directorio y lo borro manualmente. despues ejecuto ese script y el unlink me tira error porque obviamente el archivo no esta y no lo encuentra.

Por eso pongo el mysql_num_rows... pero ya me di cuenta de mi error, ya que el nombre siempre existira , pero el archivo fisico no por eso siempre me sale ese error en esa condicion. Probare con el file_exists() para preguntar si existe el archivo fisico....

saludos
__________________
Quitenme la vida pero no la bebida.
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 12:39.