Foros del Web » Programando para Internet » PHP »

Borrar Archivos sin importar su Extension

Estas en el tema de Borrar Archivos sin importar su Extension en el foro de PHP en Foros del Web. Buenas Tardes, haber mi duda, en mi pagina anadi un modulo de empleo donde el usuario llena un formulario y sube su hoja de vida ...
  #1 (permalink)  
Antiguo 12/08/2011, 16:23
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Pregunta Borrar Archivos sin importar su Extension

Buenas Tardes, haber mi duda, en mi pagina anadi un modulo de empleo donde el usuario llena un formulario y sube su hoja de vida al servidor, clasificada por areas, cuando el archivo se sube se guarda en una carpeta llamada CURRICULOS y una Sub Carpeta que tiene como nombre el area de trabajo (Informatica, Administracion, Etc...)

Ahora estoy evaluando si un usuario, vuelve a subir un archivo (es decir sube otra hoja de vida habiendo ya subido una previamente)

entonces esa opcion tiene 2 repuestas si sube una hoja de vida en la misma area, o en una diferente.

Buscando en la web encontre un codigo donde puedo buscar dentro de un directorio, ahora quier que no solamente busque si no que tambien borre, cosa que no me esta haciendo, claro hago incapie que necesito que borre todo los archivos que posean el mismo ID, eso lo tengo por que el formato que se aceptan son WORD EXCEL POWERPOINT y PDF, entonces necesito que el sistema borre todos los documentos que posean el mismo ID (ID DE USUARIO) sea cual sea la ext, y si hay varios con un mismo borre tambien lo elimine...

Muestro mi codigo en el siguiente Post porque no me alcanza aqui...

Para que alguien me guie y me diga que puedo agregar para que efectivamente borre todo sobre dicho usuario...
  #2 (permalink)  
Antiguo 12/08/2011, 16:27
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Pregunta Respuesta: Borrar Archivos sin importar su Extension

El Codigo es:

Código PHP:
<?php require_once('Connections/Conexion.php');

// Busquedad Recursiva
function buscar($dir,$archivo_buscar
{
     if ( 
is_dir($dir) ) 
     { 
          
// Recorremos Directorio 
          
$d=opendir($dir);  
          while( 
$archivo readdir($d) ) 
          {
            if ( 
$archivo!="." AND $archivo!=".."  
            {
                if ( 
is_file($dir.'/'.$archivo) ) 
                 { 
                      
// Es Archivo 
                      
if ( $archivo == $archivo_buscar  
                      { 
                           return (
$dir.'/'.$archivo); 
                    } 
                     
                } 
                  
                if ( 
is_dir($dir.'/'.$archivo) ) 
                { 
                     
// Es Directorio 
                     // Volvemos a llamar 
                     
$r=buscar($dir.'/'.$archivo,$archivo_buscar); 
                     if ( 
basename($r) == $archivo_buscar 
                     { 
                          return 
$r
                    } 
                      
                      
                }                          
            }
        }                           
    }
    return 
FALSE
}

//CONFIGURACION
$maximo_tamano'524288'//tamaño maximo de los archivos, 500kb.
//FIN CONFIGURACION

//proceso del formulario
// si existe "enviar"...
if (isset ($_POST['Enviar']))
    {        
    
//recogemos las variables
    
$Nombre=STRTOUPPER($_POST["nom"]);
    
$Cedula=STRTOUPPER($_POST["ced"]);
    
$Area=STRTOUPPER($_POST["prof"]);    
    
//Se Comprueba si el Tamano y el Tipo son el permitido
    
if (isset($_FILES['archivo']['tmp_name']))
        {
        
$tipo=$_FILES['archivo']['type'];
        
//echo $tipo;
        //Formatos de archivo permitidos
        
switch ($tipo)
        {
            
// Word 2003
            
case "application/msword":
            
$ext="doc";
            break;
            
// Word 2007
            
case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
            
$ext="docx";
            break;
            
// Excel 2003
            
case "application/vnd.ms-excel":
            
$ext="xls";
            break;
            
// Excel 2007
            
case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
            
$ext="xlsx";
            break;
            
// PDF
            
case "application/pdf":
            
$ext="pdf";
            break;
            
//Ninguno de los Anteriores
            
default:
            
$ext="error";
            break;
            }
        }
        
//Creo la Ruta Correcta.
        
$Ruta="Curriculos/";
        
$Ruta.=$Area;
        
$tamano=$_FILES['archivo']['size'];
        
$number=is_numeric($Cedula);
        if(
$number==false){$error_archivo.="<br>- El Campo Cedula solo acepta valores Numerico.";}
        
//Pregunto si se genero un Error Con Respecto al Archivo
    
if ($ext=="error") {$error_archivo.="<br>- Formato de archivo no permitido.";}
    if (
$tamano $maximo_tamano) {$error_archivo.="<br>- El tama&ntilde;o de su archivo supera el m&aacute;ximo permitido.";}
    
//Se Comprueba si los campos tienen Dato, y si la Variable Error esta Vacia
    
if ($Nombre!='' && $Cedula!='' && $Area!='' && $error_archivo=='')
        {
        
//Pregunto por el Usuario que se esta anadiendo.
        
$colname_BuscaCed "-1";
        if (isset(
$_POST['ced'])) {
          
$colname_BuscaCed = (get_magic_quotes_gpc()) ? $_POST['ced'] : addslashes($_POST['ced']);
        }
        
mysql_select_db($database_Conexion$Conexion);
        
$query_BuscaCed sprintf("SELECT * FROM empleo WHERE cedula = %s"$colname_BuscaCed);
        
$BuscaCed mysql_query($query_BuscaCed$Conexion) or die(mysql_error());
        
$row_BuscaCed mysql_fetch_assoc($BuscaCed);
        
$totalRows_BuscaCed mysql_num_rows($BuscaCed);
        
// Compruebo si el Usuario y el Curriculo Existe.
        
if ($totalRows_BuscaCed!=0)
        {
            
//La Cedula ya esta en la BD, procedo a Borrarla para insertarla Nuevamente
            
$query_Delete = ("DELETE FROM empleo WHERE cedula = $Cedula");
            
$Delete mysql_query($query_Delete$Conexion) or die(mysql_error());
            
$Files="$Cedula.$ext";            
            
$direccion "Curriculos/";
            echo 
$direccion;
            echo 
"<br>";
            
$a_eliminar scandir($direccion);
            echo 
$a_eliminar;
            echo 
"<br>";
            foreach(
$a_eliminar as $elemento)
            {
                echo 
$elemento;
                echo 
"<br>";
                
$path pathinfo($elemento); // con esto obtengo el nombre del archivo sin extension.
                
if($path['filename'] == $_POST["ced"])
                {
                    echo 
$path['filename'];
                    echo 
"<br>";
                    echo 
$_POST["ced"];
                    echo 
"<br>";
                    
$borrar $direccion.$elemento;
                    echo 
$borrar;
                    echo 
"<br>";
                    
//chmod($borrar,0777);
                    
if(unlink($borrar))
                    {
                        
$response "1"//print "El archivo fue borrado"; 
                    
}
                    else
                    {
                        
$response "No se puede borrar ".$elemento.":hubo un fallo en el servidor. Por favor, vuelve atras y reintenta en unos segundos.";
                    };
                }
            };
            echo 
$response;                                    
        }
        else
        {
            
//La Cedula no Existe en la Bd Procedo a Insertarla.
        
}        
        
        
//Inserto el Usuario
            
$query_Insert = ("INSERT INTO empleo (nombres,cedula,area) VALUES ('$Nombre','$Cedula','$Area')");
            
$Insert mysql_query($query_Insert$Conexion) or die(mysql_error());
        
// Copiamos el Archivo al Servidor        
        
if(is_dir($Ruta))
        {
            
//La ruta existe por lo tanto no la creo
        
}
        else
        {
            
//La Ruta no Existe la Creo
            
mkdir($Ruta0700);
        }
        
//Termino la Ruta con Carpeta, Cedula del Trabajador y Extension Original.
        
$Archivo.=$Ruta;
        
$Archivo.='/';
        
$Archivo.=$Cedula;
        
$Archivo.=".";
        
$Archivo.=$ext
        
//copy($_FILES['archivo']['tmp_name'], $Archivo);
        //Hago Ok para Saber que si Funciono el Envio!        
        
$flag='ok';
        
//Mensaje de Exito!
        
$mensaje='<div id="ok"><h4><br>Su Resumen Curricular ha sido Cargado Exitosamente.<br><br>Gracias por Preferirnos.</h4></div>';
        }
        else
            {
            
//Si Hay Un Campo Vacio o Se Genero un Error al Cargar el Archivo lo Muestro
            
$flag='err';
            
$mensaje='<div id="error">- Los Campos Marcados Con * Son Requeridos. '.$error_archivo.'</div>';
            
            }
}
?>
<div id="Empleo">
<div id="LogoBest"><img src="imagenes/BestShop.gif" width="234" height="153" /></div>
<p>En <b>Best Shop</b> es un gusto que nos considere como una excelente alternativa de trabajo.</p>
<p>Ofrecemos un ambiente de trabajo equilibrado, con muchas &aacute;reas de realizaci&oacute;n profesional, donde su crecimiento personal es muy importante para nosotros.</p>
<p>Lo invitamos a formar parte de nuestra base de datos</p>

<?
echo $mensaje/*mostramos el estado de envio del form */
?>

<?
if ($flag!='ok')
    {
?>
    <br >
    <form action="?page=Empleo" method="post" enctype="multipart/form-data">
        <p>Apellidos y Nombres: </p>
        <p><input  <? if (isset ($flag) && $_POST['nom']=='') { echo 'class="campoerror"';} else {echo 'class="camponormal"';} ?>  type="text" name="nom" size="40" value="<? echo $_POST['nom'];?>"/>
        <img src="imagenes/interrogacion.gif" width="15" height="15" title="Coloque su Nombre y Apellido   por ejemplo: Pirela Lopez Fran Jose" />
        <b style="color:#FF0000"> *</b></p>
        <p>C&eacute;dula de Identidad: </p>
        <p><input <? if (isset ($flag) && $_POST['nom']=='') { echo 'class="campoerror"';} else {echo 'class="camponormal"';} ?> type="text" name="ced" size="40" value="<? echo $_POST['ced'];?>"/>
        <img src="imagenes/interrogacion.gif" width="15" height="15" title="Coloque aqui su Cedula de Identidad sin Puntos   ni V- E-, por Ejemplo; xxxxxxx" />
        <b style="color:#FF0000"> *</b></p>
        <p>&Aacute;rea de Profesi&oacute;n: </p>
        <p>
        <select name="prof" <? if (isset ($flag) && $_POST['nom']=='') { echo 'class="campoerror"';} else {echo 'class="camponormal"';} ?>>
            <option>Sin Profesion</option>
            <option>Administracion</option>
            <option>Contaduria</option>
            <option>Recursos Humanos</option>
            <option>Mantenimiento</option>
            <option>Informatica</option>
            <option>Publicidad</option>
            <option>Almacenes</option>
            <option>Otros</option>
        </select>
        <img src="imagenes/interrogacion.gif" width="15" height="15" title="Elija su Area de Profesion segun sus Conocimientos o el Cargo que Busca Desempeñar" />    
        <b style="color:#FF0000"> *</b></p>
        <p title="Elija su Resumen Curricular para cargalo a nuestra Base de Datos">Resumen Curr&iacute;cular: </p>
        <p><input name="archivo" type="file" id="archivo">
        &nbsp;
        <img src="Imagenes/Adobe.gif" width="24" height="27" />
        &nbsp;
        <img src="Imagenes/Word.GIF" width="25" height="25" />
        &nbsp;
        <img src="Imagenes/Excel.gif" width="26" height="25" />
        &nbsp;
        <img src="Imagenes/PowerPoint.GIF" width="27" height="25" />
        &nbsp;
        Peso M&aacute;ximo 500KB<b style="color:#FF0000"> *</b></p>
        <br><br>
        <input name="Enviar" type="submit" id="boton" value="Enviar" class="Boton">
        &nbsp;
        <input type="reset" name="Submit" value="Resetear" class="Boton">
    </form>
    <?
    
}
    
?>
<br><br>
</div>
<?php
@mysql_free_result($BuscaCed,$Delete,$Insert);
?>
Disculpen si lo que hice es algo indevido pero no se como Resolverlo...
  #3 (permalink)  
Antiguo 12/08/2011, 16:36
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Borrar Archivos sin importar su Extension

puedes borrar cualquier archivo con "unlink( $path );" ...

http://php.net/manual/es/function.unlink.php
  #4 (permalink)  
Antiguo 13/08/2011, 08:42
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Borrar Archivos sin importar su Extension

si pero tengo que dar la ruta completa y necesito que el sistema me haga una busqueda preliminar de todos los archivos y luego me borre sin importar su extension... y con unlink tengo que especificar todo...
  #5 (permalink)  
Antiguo 13/08/2011, 16:07
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Borrar Archivos sin importar su Extension

Eso es trabajo del programador, no del programa.

La funcion unlink soporta tando rutas absolutas como relativas

para hacer lo que dices puedes hacer uso de las funciones:

is_dir();
opendir();
readdir();
closedir();

Aqui un ejemplo.

Y para borrar los archivos, puedes hacer un blucle for, contando los directorios y cuando se encuentre el archivo hacer uso de unlink(); con la ruta actual y el archivo

Etiquetas: borrar, extension, formulario, usuarios
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 09:11.