Foros del Web » Programando para Internet » PHP »

borrar

Estas en el tema de borrar en el foro de PHP en Foros del Web. hola amigos, disculpe si tomo denuevo el tema de borrar archivos, sino que el anterior estaba muy pasado Tengo un formulario que tiene la opcion ...
  #1 (permalink)  
Antiguo 25/05/2009, 16:59
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
borrar

hola amigos, disculpe si tomo denuevo el tema de borrar archivos, sino que el anterior estaba muy pasado

Tengo un formulario que tiene la opcion de subir o no subir imagenes:

Cuando subo la imagen, creo los thumbs y borro el original con unlink()
Pero cuando no subo la imagen le asigno una imagen "default" al registro y listo
Osea la estructura quedaria asi:

Código PHP:

if($temp_imagen==""){
    
$img_thumb "images/default.jpg";
}
else{
   
//proceso el thumb y luego
   
$img_thumb "images/thumb_miembros/".$new_thumb1;
}

//como tengo en una variable $new_imagen1 el archivo principal lo borro
$sql_insert_img "insert into imagen values(null,'".$img_detalle."','".$img_thumb."','".$id_Miembro."');";
mysql_query($sql_insert_img,$c);
//aqui pregunto si existe la imagen original
if (file_exists("../images/miembros/".$new_imagen1)) {
    
unlink("../images/miembros/".$new_imagen1);
}     
echo 
"listo"
Mi problema es al preguntar por ese archivo original "si existe" con esa funcion file_exists() ya que cuando proceso el formulario sin enviar una imagen me sale el error en el unlink, claro que no afecta en nada mi programacion pero se ve feo ese error. Que estoy haciendo mal? por lo que veo yo estoy preguntando sobre un archivo contenido en la variable $new_imagen1 , esa variable la creo en la segunda condicion del if principal ya que es parte del proceso de creacion del thumb. O hay una manera de ocultar ese error? como un try catch o algo asi jeje, saludos
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 25/05/2009, 17:08
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: borrar

no veo donde creas(como dices) la variable $new_imagen1, lo que veo es que si utilizas, lo que harías es con la función isset preguntar de si existe o no dicha variable y además que no esté vacío y luego recién hacer los siguientes procesos.

suerte.

de ocultar errores claro que es posible desde php por ejemplo que al inicio del script pongas error_reporting(0), pero no es buena idea, ya que es importante que escribas un código robusto con el mínimo de errores.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #3 (permalink)  
Antiguo 25/05/2009, 17:16
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: borrar

gracias por responder, pues como lo explicaba esa variable $new_imagen1 lo uso en el "else" para crear los thumbs.... pero no quice ponerlo porque no tiene caso poner tanto codigo pero ahi te va para que veas donde lo uso :

Código PHP:
list($ancho1$altura1$tipo1$atr1) = getimagesize($tmp_name1);
$datos getimagesize($tmp_name1);

//.... otros procesos.... de calculo de thumbs ....

        //tomo el nombre y la extension
        
$dataimg1 explode(".",$name1);
        
//formando los nombres para las nuevas imagenes
        
$new_imagen1 "imagen-".$id_Miembro."-".$id_Miembro_Imagen.".".$dataimg1[1];
        
$new_thumb1 "thumb-".$id_Miembro."-".$id_Miembro_Imagen.".".$dataimg1[1];
        
$new_thumbDetalle "detalle-".$id_Miembro."-".$id_Miembro_Imagen.".".$dataimg1[1];
        
//subir la imagen
        
if(move_uploaded_file($_FILES['img1']['tmp_name'],$destino_Images.$new_imagen1)){
            
$img1_procesada true;
            
//crear la imagen thumb
            
$source $destino_Images.$new_imagen1;
            
$dest $destino_Thumbs.$new_thumb1;
            
$width_d $elanchoi1;    //ancho de salida
            
$height_d $elaltoi1;    //alto de salida
            
$gd_s imagecreatefromjpeg($source); // crea el recurso gd para el origen 
            
$gd_d imagecreatetruecolor($width_d$height_d); // crea el recurso gd para la salida 
            
imagecopyresampled($gd_d$gd_s0000$width_d$height_d$ancho1$altura1); // redimensiona 
            
imagejpeg($gd_d$dest);
            
imagedestroy($gd_s);// Se liberan recursos 
            
imagedestroy($gd_d);


bueno con eso creo los thumbs pero ademas se copia la imagen original para luego borrarlo con el unlink (todo esto en caso que yo suba una imagen)

Pero creo que tienes razon quizas sea mejor que pregunte por el isset de esa variable $new_imagen1 ya que no la uso en la primera condicion.... probare y luego te informo
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 25/05/2009, 17:21
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: borrar

a lo que me refería es donde creas dicha variable en el código de tu primer post, claro aquí se ve que lo creas y lo usas pero es para esta parte.

una pregunta este código que posteas es parte del primero???
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #5 (permalink)  
Antiguo 25/05/2009, 17:29
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: borrar

bueno lo creo al momento de crear los nombres para los archivos, justo aqui:

//formando los nombres para las nuevas imagenes
$new_imagen1 = "imagen-".$id_Miembro."-".$id_Miembro_Imagen.".".$dataimg1[1];

Pero ya lo solucioné... solo me basto esto para que desapareciera el error:
Código PHP:
if (isset($new_imagen1)) {
    
unlink("../images/miembros/".$new_imagen1);

bueno, muchas gracias por tu atencion
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 25/05/2009, 17:32
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: borrar

decía lo de negrita jaja.
Cita:
Iniciado por argy Ver Mensaje
no veo donde creas(como dices) la variable $new_imagen1, lo que veo es que si utilizas, lo que harías es con la función isset preguntar de si existe o no dicha variable y además que no esté vacío y luego recién hacer los siguientes procesos.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 08:55.