Skip to Content »

Upload Multiple tipo Gmail

  • 08/10/2006
  • 1:54 am
  • unijimpe

Muchas personas hemos visto la forma de ingresar los archivos para hacer upload en Gmail, si seleccionas un archivo se creará un enlace que te permitirá un nuevo archivo, esto es muy práctico si se quiere hacer uploads de archivos multiple.

Veamos el script para realizar esta acción. Lo primero es crear el formulario con un campo de tipo file llamado attach y un Div oculto para el enlace a Agregar otro Archivo.

  1. <input type="file" name="attach" id="attach"
  2. onchange="setBlock();" />
  3. <div id="moreUploads"></div>
  4. <div id="moreLink" style="display:none;">
  5. <a href="javascript:addFileInput();">Agregar otro Archivo</a>
  6. </div>

El siguiente paso es crear las funciones javascript, la primera addFileInput crear el nuevo campo tipo file para seleccionar el siguiente archivo y setBlock para mostrar el enlace.

  1. var upload_number = 2;
  2. function addFileInput() {
  3.     var d = document.createElement("div");
  4.     var file = document.createElement("input");
  5.     file.setAttribute("type", "file");
  6.     file.setAttribute("name", "attach"+upload_number);
  7.     d.appendChild(file);
  8.     document.getElementById("moreUploads").appendChild(d);
  9.     upload_number++;
  10. }
  11. function setBlock() {
  12.    document.getElementById('moreLink').style.display = 'block';
  13. }

Puedes ver el [tbox] resultado de este ejemplo, http://samples.unijimpe.net/attach.html, Gmail Upload, 400, 200[/tbox]. Espero les sirva de algo, desde luego la parte de servidor pueden hacerla dependiendo del lenguaje que manejen.

Posts Relacionados

Total de Comentarios: 16

Publicidad
15/03/2007
10:30 am

Como puedo guardar la direccion de esos archivos que se suben en una base de datos??

muchas gracias

saludos

16/03/2007
12:11 am

Bueno, en cada vez que subes un archivo tendrías que hacer un insert en tu base de datos donde guardes la ruta donde esta el archivo. La forma exacta depende de la base de datos que elijas.

Alexander Rueda
06/04/2007
5:21 pm

Bueno, me podrian por favro explicar como quedaria el upload de archivos multiples con PHP.
Gracias

renzo_xp
24/06/2007
1:39 am

Gracias por el dato.
Solo un detalle sin mucha importancia:
Al crear el nuevo INPUT no tenía lo mismo del original, le faltaba el evento “onChange” y que se oculte el enlace “Agrega otro archivo”.

Agregando 2 lineas al final de la función “addFileInput” se soluciona esto:

file.onchange = setBlock;
document.getElementById(’moreLink’).style.display = ‘none’;

Saludos

24/06/2007
5:15 am

Hola, tienes mucha razón de esta forma queda mucho mejor, gracias por tu aporte.
Saludos

01/08/2007
10:29 pm

Hola Unijimpe,

Ya he creado el Upload De Imagenes en PHP.
Me podria pasar el código fuente de el Upload Masivo de Imagenes en PHP.
Se lo agradeceria mucho :)

22/08/2007
4:52 am

Genial!! esta muy bien pensado tu recurso, y con lo que dice renzo_xp queda de perlas

GRACIASSS!!!

Julian
04/09/2007
11:35 pm

muchas gracias!!, me fue muy util.

LEAD
03/10/2007
11:50 am

buen manejo del dom, y si quiero enviar con ajax el elemento FILE ?

LEAD
03/10/2007
11:46 pm

Como envio parametros en la funcion setBlock
file.onchange = setBlock;

no me permite enviar de manera tradicional como un javascript. por ejemplo
file.onchange = setBlock(parm1,parm2);

Gracias por sus respuestas

Cristóbal
23/10/2007
2:26 am

Muy buenos los códigos. Realmente muy útil.

Muchas gracias!!!

5n4K3
03/11/2007
1:40 am

Muy buen codigo! me ayudo mucho :D….una pequeña modificación para trabajar mas comodo :P

cambiar en la funcion addFileInput()

file.setAttribute(”name”, “attach”+upload_number);
por
file.setAttribute(”name”, “attach[]“);

Y cambiar tambien en el input el name a “attach[]“…asi van a recibir un array desde php ;) saludos!

cabelo
08/11/2007
8:28 am

Super bien esto, pero… y si quieres quitar un file??

Espero una respuesta, gracias!

yelitza meneses
14/11/2007
5:37 pm

me mandaron a construir un block gmail como lo puedo hacer

mario
Ruben
27/02/2008
2:25 pm

Y… como podríamos hacer que existiese un límite para subir archivos? Por ejemplo, que el usuario no pueda meter más de 10 archivos.

Al aparecer el input número 10, que ya deje de salir el “Agregar otro Archivo”.

Gracias de antemano

Enviar Comentario

(*)

(*)