Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/12/2014, 00:30
andre___5025
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Consulta guardar en mysql varios archivos en un registro con PHP

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
  1. <script type="text/javascript">
  2. var numero = 0;
  3.  
  4. // Funciones comunes
  5. c= function (tag) { // Crea un elemento
  6.    return document.createElement(tag);
  7. }
  8. d = function (id) { // Retorna un elemento en base al id
  9.    return document.getElementById(id);
  10. }
  11. e = function (evt) { // Retorna el evento
  12.    return (!evt) ? event : evt;
  13. }
  14. f = function (evt) { // Retorna el objeto que genera el evento
  15.    return evt.srcElement ?  evt.srcElement : evt.target;
  16. }
  17.  
  18. addField = function () {
  19.    container = d('files');
  20.    
  21.    span = c('SPAN');
  22.    span.className = 'file';
  23.    span.id = 'file' + (++numero);
  24.  
  25.    field = c('INPUT');  
  26.    field.name = 'archivos[]';
  27.    field.type = 'file';
  28.    
  29.    a = c('A');
  30.    a.name = span.id;
  31.    a.href = '#';
  32.    a.onclick = removeField;
  33.    a.innerHTML = 'Quitar';
  34.  
  35.    span.appendChild(field);
  36.    span.appendChild(a);
  37.    container.appendChild(span);
  38. }
  39. removeField = function (evt) {
  40.    lnk = f(e(evt));
  41.    span = d(lnk.name);
  42.    span.parentNode.removeChild(span);
  43. }
  44. </script>


Código HTML:
Ver original
  1. <label>Archivos Adjuntos:</label>&nbsp;&nbsp;&nbsp;<a href="#" onclick="addField()" accesskey="5">A&ntilde;adir Archivo</a></dt>
  2.         <dd><div id="files"></div>

Fuente consultada:
http://www.buayacorp.com/archivos/en...-estilo-gmail/