Morton 19 de noviembre de 2011 a las 10.35
   Imprimir artículo
elWebmaster.com

JSZip: Crear un archivo .zip descargable del lado del cliente con JavaScript


javascriptwide2JavaScript es hoy, capaz de generar mucha información, e incluso de realizar cosas sorprendentes. Por ejemplo, ¿Que tal utilizarlo para crear archivos .zip a través del cliente para que los usuarios puedan descargar múltiples archivos, y así evitar el malgasto de recursos del servidor y ancho de banda?

EL código para realizar un ejemplo de ésto es muy sencllo, tan sólo debes añadir esta clase en tu sitio:

  1. var zip = new JSZip();
  2. zip.add("Hello.txt", "Hello World\n");
  3. img = zip.folder("images");
  4. img.add("smile.gif", imgData, {base64: true});
  5. content = zip.generate();
  6. location.href="data:application/zip;base64,"+content;

Documentación

Aquí, el detalle de su funcionamiento paso por paso:

new JSZip([compressionMethod])

Construye el archivo. el string compressionMethod es el método de compresión zip utilizado.

Métodos disponibles :

“STORE” sin compresión, por defecto.
“DEFLATE” compresión zip por defecto, requiere del archivo jszip-deflate.js

add(name, data [,options])

Añade un archivo al archivo .zip. Soporta encadenado.

Opciones:

base64, boolean.
binary, boolean.
date, Date. (se usa para especificar la fecha. Si no es utilizado, la fecha será la actual).

folder(name)

Añade un directorio al archivo .zip. Soporta encadenado.

find(needle)

Compara un string oo una expresión regular contra todos los nombres de archivo, y devuelve un objeto infomacional por cada uno que coincida. El resultado es un array de coincidencias, en esta forma: {name: “Readme”, data: “Hello World!”, dir: false}

remove(name)

Borra un archivo o directorio.

generate(asBytes = false)

Genera el archivo .zip completo. Por defecto, codificado como base64, pasa true para obtener un string de byte crudo.

Soporte en navegadores

El soporte en navegadores, actualmente, es amplio, a excepción de Internet Explorer en todas sus versiones.
Es importante aclarar que aún se están realizando pruebas al respecto de esta clase creada por Stuart Knightley. El mayor inconveniente es el nombre de archivo con el que se descarga. Por ejemplo, en Google Chrome obtendremos un “download.zip”, mientras que en Opera será “default.zip”.

El mayor problema será con Firefox, que generará un nombre de archivo con un código alfanumérico aleatorio seguido de “zip.part” (continuará siendo un .zip funcional, tan sólo habrá que editarle la extensión luego en nuestra PC). Finalmente, en Safari será llamado tan sólo “unknown” (habrá que añadirle la extensión en nuestra PC).

Para más información y novedades, visita el sitio oficial de JSZip >>

Fuente original del artículo: elWebmaster.com


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (2)

  1. susana dice:

    como abro un archivo rarenc

  2. Lucas dice:

    No logro hacerlo funcionar :(

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder