Foros del Web » Programando para Internet » PHP »

Borrado del contenido de una carpeta en el servidor

Estas en el tema de Borrado del contenido de una carpeta en el servidor en el foro de PHP en Foros del Web. Hola, no consigo borrar el contenido de la carpeta que guarda los archivos que se suben a la hora del registro. Este es el php ...
  #1 (permalink)  
Antiguo 14/01/2012, 16:52
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Pregunta Borrado del contenido de una carpeta en el servidor

Hola, no consigo borrar el contenido de la carpeta que guarda los archivos que se suben a la hora del registro.

Este es el php del registro y a su vez el que guarda los archivos en una carpeta de mi servidor y los envía junto a los datos del registro.

Código PHP:
<?php 
             
    
function form_mail($sPara$sAsunto$sTexto$Correo_electrónico
    { 
     
        
$bHayFicheros 0
        
$sCabeceraTexto ""
        
$sAdjuntos ""
        
$sCuerpo $sTexto
        
$sSeparador uniqid("_Separador-de-datos_"); 
        
$sCabeceras "MIME-version: 1.0\n"
        
$Nombre $_POST['nombre']; 
$Edad $_POST['edad']; 
$Nacionalidad $_POST['nacionalidad']; 
$Telefono $_POST['telefono']; 
$Correo_electrónico $_POST['correo']; 
$Idiomas $_POST['idiomas'];
 
 
 
$mensaje .= "DATOS PERSONALES \r\n""\r\n";
 
$mensaje .= "Este mensaje fue enviado por : " $Nombre." \r\n";  
$mensaje .= "Edad Real : " $Edad." \r\n";
$mensaje .= "Telefono : " $Telefono." \r\n";
$mensaje .= "Nacionalidad : " $Nacionalidad." \r\n";
$mensaje .= "Su e-mail es : " $Correo_electrónico."\r\n \r\n";
$mensaje .= "Idiomas :"$Idiomas." \r\n \r\n"
$sCuerpo $mensaje;
 
 
 
        
// Recorremos los Ficheros 
        
foreach ($_FILES as $vAdjunto
        { 
             
            if (
$bHayFicheros == 0
            { 
                 
                
// Hay ficheros 
                 
                
$bHayFicheros 1
                 
                
// Cabeceras generales del mail 
                
$sCabeceras .= "Content-type: multipart/mixed;"
                
$sCabeceras .= "boundary=\"".$sSeparador."\"\n"
                 
                
// Cabeceras del texto 
                
$sCabeceraTexto "--".$sSeparador."\n"
                
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"
                
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n\n"
                 
                
$sCuerpo $sCabeceraTexto.$sCuerpo
                 
            } 
             
            
// Se añade el fichero 
            
if ($vAdjunto["size"] > 0
            { 
                
$sAdjuntos .= "\n\n--".$sSeparador."\n"
                
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n"
                
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"
                
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";                  
                 
                
$oFichero fopen($vAdjunto["tmp_name"], 'rb'); 
                
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"])); 
                
$sAdjuntos .= chunk_split(base64_encode($sContenido)); 
                
fclose($oFichero); 
            } 
             
        } 
         
        
// Si hay ficheros se añaden al cuerpo 
        
if ($bHayFicheros
            
$sCuerpo .= $sAdjuntos."\n\n--".$sSeparador."--\n"
         
        
// Se añade la cabecera de destinatario 
        
if ($Correo_electrónico)$sCabeceras .= "From:".$Correo_electrónico."\n"
         
        
// Por último se envia el mail 
        
return(mail($sPara$sAsunto$sCuerpo$sCabeceras)); 
    } 
         
      if (isset(
$_POST["action"]) && ($_POST["action"] == "upload")) {
        
        
//Ejemplo de como usar: 
        
if (form_mail("[email protected]"
                                    
"REGISTRO NUEVO"
                                    
"Los datos introducidos en el formulario son:\n"
                                    
"")) 
        echo 
""
}
 
 
 
?>
Pues lo que quiero es añadir a este código otro para que después de enviar el mail borre todos los archivos que fueron guardados en el directorio files

Necesitaría que me ayudaran ya que no se bien como hacerlo.

Un saludo y gracias
  #2 (permalink)  
Antiguo 14/01/2012, 17:02
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 13 años, 1 mes
Puntos: 28
Respuesta: Borrado del contenido de una carpeta en el servidor

puedes usar la funcion unlink("ruta_del_archivo/fichero.extension)

http://es.php.net/manual/es/function.unlink.php

espero que te sirva
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting
  #3 (permalink)  
Antiguo 14/01/2012, 17:24
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

Si, pero lo que quiero es que borre todo el contenido de dicha carpeta, he intentado usar el unlink, pero como no se mucho, no me aclaro a la hora de usarlo.
  #4 (permalink)  
Antiguo 14/01/2012, 17:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Borrado del contenido de una carpeta en el servidor

unlink() sirve para borrar un archivo, rmdir() para borrar una carpeta vacía.

Debes iterar todos los archivos dentro de la carpeta a borrar y eliminar todos los archivos primero, luego borras la carpeta.

Te sugiero consultar el manual para que te aclares.
http://php.net/unlink
http://php.net/rmdir
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/01/2012, 18:41
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

Mas o menos lo entiendo, pero yo quiero borrar todo el contenido de una carpeta sin borrar la carpeta, si utilizo el unlink me borra un archivo, lo que no entiendo es como tengo que indicar que los borre todos sin yo saber el nombre de los archivos ni la extensión.

Un saludo
  #6 (permalink)  
Antiguo 14/01/2012, 18:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Borrado del contenido de una carpeta en el servidor

Puedes usar glob() para obtener un array con los archivos de la carpeta, iteras, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 14/01/2012, 18:52
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

Te refieres a algo como esto:
Código PHP:
Ver original
  1. <?php
  2.    $_FILES = "nombre de la carpeta/registro_files/files/";  /esa es la ruta donde están los archivos
  3.    array_map( "unlink", glob( $_files ) );
  4. ?>

Lo tengo en una carpeta que se llama files.
De esa manera no me lo borra, pero tampoco me da error.
Un saludo

Última edición por urby; 14/01/2012 a las 19:10
  #8 (permalink)  
Antiguo 14/01/2012, 19:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Borrado del contenido de una carpeta en el servidor

Activa el reporte de errores, agrega estas lineas al inicio de tu script.
Código PHP:
error_reporting(-1);
ini_set('display_errors'1); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 14/01/2012, 19:29
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

Me da este error:

Notice: Undefined variable: _files in /homepages/22/d396516227/htdocs/Registro/Registro_files/Registro.php on line 259
  #10 (permalink)  
Antiguo 14/01/2012, 19:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Borrado del contenido de una carpeta en el servidor

Las variables en php son sensible as mayúsculas y minúsculas, por lo tanto es evidente tu error, revisa bien tu código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 14/01/2012, 19:46
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

No da error, sigue sin borrar el contenido de la carpeta
  #12 (permalink)  
Antiguo 14/01/2012, 19:54
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

Lo intente con este otro código, y si me borra todo el contenido de la carpeta, pero no de la que quiero que es files, sino de la anterior que es registro_files.

Código PHP:
Ver original
  1. <?php
  2. $_FILES = "nombre de la carpeta/registro_files/files/"
  3. foreach (glob("*.*") as $_FILES) {
  4.    echo "$_FILES" . filesize($_FILES) . "\n";
  5.    unlink($_FILES);
  6. }
  7.  
  8. ?>
  #13 (permalink)  
Antiguo 17/01/2012, 04:15
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 13 años, 1 mes
Puntos: 28
Respuesta: Borrado del contenido de una carpeta en el servidor

Aquí tienes la solución:
Código PHP:

<?php

$dir 
"directorio/"
$handle opendir($dir); 

while (
$file readdir($handle))  {   if (is_file($dir.$file)) { unlink($dir.$file); }

}
?>
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting
  #14 (permalink)  
Antiguo 17/01/2012, 05:51
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Borrado del contenido de una carpeta en el servidor

Genial!!!!

Este es perfecto, muchísimas GRACIAS!!!!!

Funciona a la perfección.
  #15 (permalink)  
Antiguo 17/01/2012, 09:03
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 13 años, 1 mes
Puntos: 28
Respuesta: Borrado del contenido de una carpeta en el servidor

de nada ;)
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting

Etiquetas: borrado, contenido, formulario, registro, servidor, carpetas
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 07:49.