Foros del Web » Programando para Internet » PHP »

Consulta guardar en mysql varios archivos en un registro con PHP

Estas en el tema de Consulta guardar en mysql varios archivos en un registro con PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/12/2014, 00:30
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 6 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/
  #2 (permalink)  
Antiguo 26/12/2014, 01:59
(Desactivado)
 
Fecha de Ingreso: enero-2013
Mensajes: 289
Antigüedad: 11 años, 2 meses
Puntos: 10
Respuesta: Consulta guardar en mysql varios archivos en un registro con PHP

yo por ejemplo las imágenes no las guardo en la base de datos, sinó en una carpeta en el servidor.
  #3 (permalink)  
Antiguo 26/12/2014, 11:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Consulta guardar en mysql varios archivos en un registro con PHP

Si vas a querer hacerlo con GMail, tendrías que usar Ajax para la carga dinámica de las imágenes.

Luego de seleccionarlas, las enviaría mediante Ajax a través de un objeto FormData; en el archivo del lado del servidor (por ejemplo, PHP), comprobaría que cada archivo seleccionado sea de tipo imagen (JPG, PNG, GIF, BMP) y a los archivos que cumplan con dicho requisito, los guardaría en una carpeta del servidor con la función move_uploaded_file, generaría nombres aleatorios para cada uno (para evitar posibles repeticiones) y los guardaría en una tabla de la BD, teniendo la posibilidad de asociarlos a algún identificador, si así lo requieres.

Ya subidos los archivos y guardados sus nuevos nombres, insertaría cada nombre en un array y lo devolvería al archivo que realizó la petición asíncrona (Ajax), para que mediante un bucle, vaya creando elementos <img>, les asigne la ruta respectiva (con el nombre del directorio que contiene a las imágenes subidas) y los nombres retornados por el array en el archivo PHP; los añadiría al documento en alguna sección en particular y así obtendría un resultado muy similar al de GMail.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 26/12/2014 a las 11:07

Etiquetas: html, mysql, 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 07:59.