Muy Buenas amigos, ire al grano, necesito guardar varios archivos a la vez (Los que el usuario necesite) al estilo Gmail, encontré una función que puede añadir o quitar los archivos que se desean elegir. El problema es que no es claro como puedo guardar dichos archivos por registro en mi base de datos. Si me pueden colaborar se los agradecería mucho. 
   Código PHP:
               if (isset ($_FILES["archivos"])) { # Si es que se subió algún archivo
            $msg .= "<ul>";
            foreach ($_FILES["archivos"]["error"] as $key => $error) { # Iterar sobre la colección de archivos
                if ($error == UPLOAD_ERR_OK) { // Si no hay error
                    $tmp_name = $_FILES["archivos"]["tmp_name"][$key];
                    $name = $_FILES["archivos"]["name"][$key];
                    $msg .= "<li>$name</li>";
                    $name = uniqid('bc') . '_' . $name; # Generar un nombre único para el archivo
                    $mail -> AddAttachment ($tmp_name, $name); # Añade el archivo adjunto
                    /*
                    Si se van a guardar los archivos en un directorio, deberían descomentarse
                    las siguientes líneas, si se van a guardar los nombres 
                    de los archivos en una base de datos, aquí debería realizarse algo...                    
                       
                    move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicación, debe tener los permisos necesarios
                    */
                } #if
               } # foreach
            $msg .= '</ul>';
        } # if
        if (!$mail -> Send ()){
            $msg = "No se pudo enviar el email";
        } 
    
     
Código Javascript
:
Ver original- <script type="text/javascript"> 
- var numero = 0; 
-   
- // Funciones comunes 
- c= function (tag) { // Crea un elemento 
-    return document.createElement(tag); 
- } 
- d = function (id) { // Retorna un elemento en base al id 
-    return document.getElementById(id); 
- } 
- e = function (evt) { // Retorna el evento 
-    return (!evt) ? event : evt; 
- } 
- f = function (evt) { // Retorna el objeto que genera el evento 
-    return evt.srcElement ?  evt.srcElement : evt.target; 
- } 
-   
- addField = function () { 
-    container = d('files'); 
-     
-    span = c('SPAN'); 
-    span.className = 'file'; 
-    span.id = 'file' + (++numero); 
-   
-    field = c('INPUT');    
-    field.name = 'archivos[]'; 
-    field.type = 'file'; 
-     
-    a = c('A'); 
-    a.name = span.id; 
-    a.href = '#'; 
-    a.onclick = removeField; 
-    a.innerHTML = 'Quitar'; 
-   
-    span.appendChild(field); 
-    span.appendChild(a); 
-    container.appendChild(span); 
- } 
- removeField = function (evt) { 
-    lnk = f(e(evt)); 
-    span = d(lnk.name); 
-    span.parentNode.removeChild(span); 
- } 
- </script> 
Código HTML:
Ver original- <label>- Archivos Adjuntos: </label>   <a href="#" onclick="addField()" accesskey="5">- A ñ- adir Archivo </a></dt>
 
Fuente consultada:  
http://www.buayacorp.com/archivos/en...-estilo-gmail/