Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/03/2006, 19:23
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Muy cierto cluster soy muy impulsivo... no sabes cuanto, en mas de una ocasión me he metido en lios por eso.

Bueno ahora mi aporte para la comunidad, he terminado y pulido el codigo lo máximo que mis conocimientos abarcan y bueno lo dejo aqui por si interesa para las FAQ's o para cualquier usuario que localize este hilo.

Sirve para subir archivos al servidor y ademas cuando termina de subirlos envia mails con la ruta del archivo a el webmaster y al usuario.

para pasar el nombre del usuario yo la cojo de los foros phpBB, pero tu puedes montartelo como quieras

le he puesto explicaciones y todo

Código PHP:
<?php

//////////////////////////////
// VARIABLES DEL FORMULARIO //
//////////////////////////////
  
  
$userfile=$_FILES['userfile']['tmp_name']; 
  
$userfile_name=$_FILES['userfile']['name'];
  
$userfile_size=$_FILES['userfile']['size'];
  
$userfile_type=$_FILES['userfile']['type'];
  
$userfile_error=$_FILES['userfile']['error'];
  
$usuario=$_POST['usuario'];
  
$email=$_POST['email'];

///////////////////////////////////
// VARIABLES DEL ENVIO DE EMAILS //
///////////////////////////////////
  
// DESTINATARIO 1: EL WEBMASTER EN ESTE CASO

  
$destinatario '[email protected]';
  
$asunto 'Nuevos datos subidos!! Revisalos ya!!';
  
$contenidoemail 'El usuario: '.$usuario."\n"
                 
.'Con esta direccion de email: '.$email."\n"
                 
.'Ha subido este archivo para revisión: http://www.tuweb.com/ruta_a_el/archivo/'.$userfile_name."\n";
  
$remitente 'From: tu nombre o nombre de tu web';

// DESTINATARIO 2: EL USUARIO QUE HA ENVIADO EL ARCHIVO
// Es una buena manera de dejarle claro que el archivo se ha subido correctamente
  
  
$destinatario2 ''.$email.'';
  
$asunto2 'Archivo recibido correctamente';
  
$contenidoemail2 'Hola '.$usuario."!!\n"
                 
.'bla bla: '.$email."\n"
                 
.'El archivo ha sido enviado correctamente, muchas gracias por tu colaboracion: http://www.tuweb.com/ruta_a_el/archivo/'.$userfile_name."\n";
  
$remitente2 'From: tu nombre o nombre de tu web';

////////////////////////////////////////////////////////////////////////////
// COMPROBAMOS QUE EL USUARIO HA RELLENADO TODOS LOS DATOS DEL FORMULARIO //
////////////////////////////////////////////////////////////////////////////

// AQUI PASA EL USUARIO

  
if (!$usuario)
  {
      echo 
"".$usuario." No has introducido el nombre de usuario.<br />";
      echo 
"Por favor vuelve atras y rellena todas las casillas.";
      exit;
  }

// AQUI PASA LA DIRECCION DE EMAIL

  
if (!$email)
  {
      echo 
"".$usuario." No has introducido el email.<br />";
      echo 
"Por favor vuelve atras y rellena todas las casillas.";
      exit;
  }

// AQUI PASA EL ARCHIVO

if (!$userfile)
  {
      echo 
"".$usuario." No has seleccionado ningún archivo.<br />";
      echo 
"Por favor vuelve atras y rellena todas las casillas.";
      exit;
  }

// AQUI COMPRUEBA VARIAS CUESTIONES

  
if ($userfile_error 0)
  {
    echo 
'Problema: ';
    switch (
$userfile_error)
    {
      case 
1:  echo 'El archivo excede el: upload_max_filesize';  break;
      case 
2:  echo 'El archivo excede el: max_file_size';  break;
      case 
3:  echo 'El arcivo no se ha subido al completo';  break;
      case 
4:  echo 'No file uploaded';  break;
    }
    exit;
  }

//////////////////////////////////////////////////
// COMPROBAMOS QUE LOS TIPOS MIME SON CORRECTOS //
//////////////////////////////////////////////////

  
$userfile_type_aceptados=array('application/rar','application/zip');
  if (!
in_array($userfile_type,$userfile_type_aceptados))
  {
      echo 
'El archivo no tiene el formato adecuado (zip o rar).';
      echo 
'Recuerda que debe ser un archivo comprimido en uno de esos dos formatos.';
      exit;
  } 

/////////////////////////////////////////////////////////
// AHORA MOVEMOS EL ARCHIVO A LA UBICACION QUE QUIERAS //
// RECUERDA QUE SON RUTAS ABSOLUTAS                    //
/////////////////////////////////////////////////////////

  
$upfile '/home/tu/ruta/absoluta/a/la/carpeta/que/quieras/'.$userfile_name;

// COMPROBAMOS QUE NO SE INTENTA SUBIR DOS VECES EL MISMO ARCHIVO

  
if (file_exists($upfile))
  {
      echo 
'El archivo ya existe en el servidor';
      echo 
'no puedes subir el mismo arhivo 2 veces';
      exit;
  }

// COMPROBAMOS QUE SE HA MOVIDO CORRECTAMENTE AÑADIDO PARA LA VERSION 4.0.3 de php

  
if (is_uploaded_file($userfile)) 
  {
     if (!
move_uploaded_file($userfile$upfile))
     {
         echo 
'Problema: No se ha podido mover el archivo a el directorio de destino';
         exit;
     }
  } 
  else 
  {
      
unlink($upfile);
      echo 
'Problema: Posible ataque en el upload del Archivo: '.$userfile_name;
      exit;
  }

///////////////////////////////////////////////////
// AHORA ENVIAMOS LOS EMAILS A SUS DESTINATARIOS //
///////////////////////////////////////////////////

  
if (!mail($destinatario$asunto$contenidoemail$remitente) || !mail($destinatario2$asunto2$contenidoemail2$remitente2))
  {
      echo 
"Ha fallado el envio del email";
  }
  echo 
"Los datos se han enviado correctamente y se te ha enviado el email";
?>
Que os parece?? ¿esta bien?

Última edición por MindPaniC; 24/03/2006 a las 20:12