Foros del Web » Programando para Internet » PHP »

Como borrar archivo después de enviar mail???

Estas en el tema de Como borrar archivo después de enviar mail??? en el foro de PHP en Foros del Web. Hola, en el formulario que realice, inserte cinco campos para subir archivos a una carpeta de mi servidor, en el php de envío del formulario ...
  #1 (permalink)  
Antiguo 13/01/2012, 07:16
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 3 meses
Puntos: 1
Como borrar archivo después de enviar mail???

Hola, en el formulario que realice, inserte cinco campos para subir archivos a una carpeta de mi servidor, en el php de envío del formulario puse que los mandara junto con los datos de registro como datos adjuntos, asta ese momento todo perfecto.

Lo que me gustaría saber es como indicarle a ese mismo php que una vez enviados los archivos los borre de dicha carpeta ya que realizando pruebas me di cuenta que en la pantalla de agradecimiento en la parte superior izquierda se ven los archivos que fueron subidos anteriormente y pinchando en ese texto se ve la imagen que fue subida, aun adjuntandolos desde otro pc.

Como hacer que esos no aparezca o lo que me interesaría realmente es que los eliminase de la carpeta del servidor.

Un saludo y muchísimas gracias.
  #2 (permalink)  
Antiguo 13/01/2012, 07:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Como borrar archivo después de enviar mail???

Hola.

Hay funciones muy sencillas de usar para leer directorios, copiar y borrar archivos, etc. Buscas por la web, ya que son bastante sencillas e intuitivas.

Un saludo.
  #3 (permalink)  
Antiguo 13/01/2012, 09:06
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Como borrar archivo después de enviar mail???

Estoy mirando, pero no acabo de comprender como, si al final del php del envío del mail añado un unlink diciendo que borre el contenido de dicha carpeta eso funcionaria?

Lo que no se como indicar que lo borre.
  #4 (permalink)  
Antiguo 13/01/2012, 09:28
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Como borrar archivo después de enviar mail???

Lo puse de esta manera pero me da error, lo puse dentro del php del envío del formulario.

Código PHP:
Ver original
  1. <?php
  2. // directorio donde estan los archivos a borrar:
  3. // no te olvides de poner la barra final
  4. $dir = "/Registro_files/files/";
  5.  
  6. $handle = opendir($_FILES);
  7. while ($_FILES = readdir($handle))
  8. {
  9.    if (is_file($dir.$_FILES))
  10.    {
  11.        unlink($dir.$_FILES);
  12.    }
  13. }
  14. ?>
  #5 (permalink)  
Antiguo 13/01/2012, 11:06
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Como borrar archivo después de enviar mail???

Hola.

A donde quiera que estes enviando el formulario, allí tendras el codigo php recibiendo los datos. Una vez procesados como dijiste que se procesaba en tu primer post, ahí es donde tienes que eliminar el archivo que quieras de la carpeta que quieras.

Despues, si te da error, debes indicar que error te da, si no no te va a poder ayudar nadie.

Un saludo.
  #6 (permalink)  
Antiguo 13/01/2012, 21:18
 
Fecha de Ingreso: enero-2012
Ubicación: Barcelona
Mensajes: 71
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Como borrar archivo después de enviar mail???

OK!!!

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:
Ver original
  1. <?php
  2.     if ($gestor = opendir('files')) {
  3.         echo "<ul>";
  4.         while (false !== ($arch = readdir($gestor))) {
  5.            if ($arch != "." && $arch != "..") {
  6.                echo "<li><a href=\"files/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
  7.            }
  8.         }
  9.         closedir($gestor);
  10.         echo "</ul>";
  11.     }
  12.     ?>  </td>
  13.   </tr>
  14. </table>
  15. </body>
  16. </html>
  17.  
  18. <?php
  19. $status = "";
  20. if ($_POST["action"] == "upload") {
  21.     // obtenemos los datos del archivo
  22.     $tamano = $_FILES["archivo1"]['size'];
  23.     $tipo = $_FILES["archivo1"]['type'];
  24.     $archivo1 = $_FILES["archivo1"]['name'];
  25.     $prefijo = substr(md5(uniqid(rand())),0,6);
  26.    
  27.  
  28.     if ($archivo1 != "") {
  29.         // guardamos el archivo a la carpeta files
  30.         $destino =  "files/".$prefijo."_".$archivo1;
  31.         if (copy($_FILES['archivo1']['tmp_name'],$destino)) {
  32.             $status = "Archivo subido: <b>".$archivo1."</b>";
  33.         } else {
  34.             $status = "Error al subir el archivo";
  35.         }
  36.     } else {
  37.         $status = "Error al subir archivo";
  38.     }
  39. }
  40. ?>
  41. <?php
  42. $status = "";
  43. if ($_POST["action"] == "upload") {
  44.     // obtenemos los datos del archivo
  45.     $tamano = $_FILES["archivo2"]['size'];
  46.     $tipo = $_FILES["archivo2"]['type'];
  47.     $archivo2 = $_FILES["archivo2"]['name'];
  48.     $prefijo = substr(md5(uniqid(rand())),0,6);
  49.    
  50.  
  51.     if ($archivo2 != "") {
  52.         // guardamos el archivo a la carpeta files
  53.         $destino =  "files/".$prefijo."_".$archivo2;
  54.         if (copy($_FILES['archivo2']['tmp_name'],$destino)) {
  55.             $status = "Archivo subido: <b>".$archivo2."</b>";
  56.         } else {
  57.             $status = "Error al subir el archivo";
  58.         }
  59.     } else {
  60.         $status = "Error al subir archivo";
  61.     }
  62. }
  63. ?>
  64. <?php
  65. $status = "";
  66. if ($_POST["action"] == "upload") {
  67.     // obtenemos los datos del archivo
  68.     $tamano = $_FILES["archivo3"]['size'];
  69.     $tipo = $_FILES["archivo3"]['type'];
  70.     $archivo3 = $_FILES["archivo3"]['name'];
  71.     $prefijo = substr(md5(uniqid(rand())),0,6);
  72.    
  73.  
  74.     if ($archivo3 != "") {
  75.         // guardamos el archivo a la carpeta files
  76.         $destino =  "files/".$prefijo."_".$archivo3;
  77.         if (copy($_FILES['archivo3']['tmp_name'],$destino)) {
  78.             $status = "Archivo subido: <b>".$archivo3."</b>";
  79.         } else {
  80.             $status = "Error al subir el archivo";
  81.         }
  82.     } else {
  83.         $status = "Error al subir archivo";
  84.     }
  85. }
  86. ?>
  87. <?php
  88. $status = "";
  89. if ($_POST["action"] == "upload") {
  90.     // obtenemos los datos del archivo
  91.     $tamano = $_FILES["archivo4"]['size'];
  92.     $tipo = $_FILES["archivo4"]['type'];
  93.     $archivo4 = $_FILES["archivo4"]['name'];
  94.     $prefijo = substr(md5(uniqid(rand())),0,6);
  95.    
  96.  
  97.     if ($archivo4 != "") {
  98.         // guardamos el archivo a la carpeta files
  99.         $destino =  "files/".$prefijo."_".$archivo4;
  100.         if (copy($_FILES['archivo4']['tmp_name'],$destino)) {
  101.             $status = "Archivo subido: <b>".$archivo4."</b>";
  102.         } else {
  103.             $status = "Error al subir el archivo";
  104.         }
  105.     } else {
  106.         $status = "Error al subir archivo";
  107.     }
  108. }
  109. ?>
  110. <?php
  111. $status = "";
  112. if ($_POST["action"] == "upload") {
  113.     // obtenemos los datos del archivo
  114.     $tamano = $_FILES["archivo5"]['size'];
  115.     $tipo = $_FILES["archivo5"]['type'];
  116.     $archivo5 = $_FILES["archivo5"]['name'];
  117.     $prefijo = substr(md5(uniqid(rand())),0,6);
  118.    
  119.  
  120.     if ($archivo5 != "") {
  121.         // guardamos el archivo a la carpeta files
  122.         $destino =  "files/".$prefijo."_".$archivo5;
  123.         if (copy($_FILES['archivo5']['tmp_name'],$destino)) {
  124.             $status = "Archivo subido: <b>".$archivo5."</b>";
  125.         } else {
  126.             $status = "Error al subir el archivo";
  127.         }
  128.     } else {
  129.         $status = "Error al subir archivo";
  130.     }
  131. }
  132. ?>
  133.  
  134. <?php
  135.              
  136.     function form_mail($sPara, $sAsunto, $sTexto, $Correo_electrónico)
  137.     {
  138.      
  139.         $bHayFicheros = 0;
  140.         $sCabeceraTexto = "";
  141.         $sAdjuntos = "";
  142.         $sCuerpo = $sTexto;
  143.         $sSeparador = uniqid("_Separador-de-datos_");
  144.         $sCabeceras = "MIME-version: 1.0\n";
  145.        
  146. $Nombre = $_POST['nombre'];
  147. $Edad = $_POST['edad'];
  148. $Nacionalidad = $_POST['nacionalidad'];
  149. $Telefono = $_POST['telefono'];
  150. $Correo_electrónico = $_POST['correo'];
  151. $Idiomas = $_POST['idiomas'];
  152.  
  153.  
  154.  
  155. $mensaje .= "DATOS PERSONALES \r\n". "\r\n";
  156.  
  157. $mensaje .= "Este mensaje fue enviado por : " . $Nombre." \r\n";  
  158. $mensaje .= "Edad Real : " . $Edad." \r\n";
  159. $mensaje .= "Telefono : " . $Telefono." \r\n";
  160. $mensaje .= "Nacionalidad : " . $Nacionalidad." \r\n";
  161. $mensaje .= "Su e-mail es : " . $Correo_electrónico."\r\n \r\n";
  162. $mensaje .= "Idiomas :". $Idiomas." \r\n \r\n";
  163. $sCuerpo = $mensaje;
  164.  
  165.  
  166.  
  167.         // Recorremos los Ficheros
  168.         foreach ($_FILES as $vAdjunto)
  169.         {
  170.              
  171.             if ($bHayFicheros == 0)
  172.             {
  173.                  
  174.                 // Hay ficheros
  175.                  
  176.                 $bHayFicheros = 1;
  177.                  
  178.                 // Cabeceras generales del mail
  179.                 $sCabeceras .= "Content-type: multipart/mixed;";
  180.                 $sCabeceras .= "boundary=\"".$sSeparador."\"\n";
  181.                  
  182.                 // Cabeceras del texto
  183.                 $sCabeceraTexto = "--".$sSeparador."\n";
  184.                 $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
  185.                 $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n\n";
  186.                  
  187.                 $sCuerpo = $sCabeceraTexto.$sCuerpo;
  188.                  
  189.             }
  190.              
  191.             // Se añade el fichero
  192.             if ($vAdjunto["size"] > 0)
  193.             {
  194.                 $sAdjuntos .= "\n\n--".$sSeparador."\n";
  195.                 $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";
  196.                 $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
  197.                 $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";                  
  198.                  
  199.                 $oFichero = fopen($vAdjunto["tmp_name"], 'rb');
  200.                 $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
  201.                 $sAdjuntos .= chunk_split(base64_encode($sContenido));
  202.                 fclose($oFichero);
  203.             }
  204.              
  205.         }
  206.          
  207.         // Si hay ficheros se añaden al cuerpo
  208.         if ($bHayFicheros)
  209.             $sCuerpo .= $sAdjuntos."\n\n--".$sSeparador."--\n";
  210.          
  211.         // Se añade la cabecera de destinatario
  212.         if ($Correo_electrónico)$sCabeceras .= "From:".$Correo_electrónico."\n";
  213.          
  214.         // Por último se envia el mail
  215.         return(mail($sPara, $sAsunto, $sCuerpo, $sCabeceras));
  216.     }
  217.          
  218.       if (isset($_POST["action"]) && ($_POST["action"] == "upload")) {
  219.        
  220.         //Ejemplo de como usar:
  221.         if (form_mail("[email protected]",
  222.                                     "REGISTRO NUEVO",
  223.                                     "Los datos introducidos en el formulario son:\n",
  224.                                     ""))
  225.         echo "";
  226. }
  227.  
  228.  
  229.  
  230. ?>

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

Etiquetas: formulario, registro
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 11:49.