Empaquetar y Comprimir ZIP
Empaquetar múltiples archivos en un archivo ZIP, arrastrar y soltar, procesamiento local en el navegador
Arrastra archivos aquí, o haz clic para seleccionar archivos
Soporta todos los tipos de archivos, múltiples archivos permitidos
¿Qué es la Compresión ZIP?
Empaquetar en ZIP combina varios archivos seleccionados en un único archivo descargable y a menudo facilita el envío o almacenamiento. Sirve para enviar archivos sueltos juntos, preparar un paquete de entrega, agrupar capturas, adjuntar varios documentos a un correo o crear una copia pequeña. ZIP es un formato sin pérdida: tras extraerlo, los archivos deberían restaurarse exactamente. Sin embargo, formatos ya comprimidos como JPG, PNG, MP4 o PDF pueden reducirse poco. Esta herramienta del navegador crea el ZIP de forma local, por lo que los archivos seleccionados no necesitan subirse a un servidor. Es adecuada para conjuntos moderados; archivos muy grandes pueden usar mucha memoria. Empaquetar en ZIP no es cifrar, así que los archivos sensibles requieren protección adicional.
Cómo usar
Cómo usar
- Arrastra archivos al área de carga o haz clic en 'Seleccionar archivos' para añadirlos
- Revisa la lista de archivos y elimina los que no necesites
- Introduce un nombre para el archivo ZIP (opcional)
- Haz clic en 'Crear archivo ZIP' para descargar el archivo comprimido
Notas sobre el archivo
- Revisa los nombres de archivo y la estructura de carpetas antes de crear el archivo ZIP; ZIP conserva las rutas y puede exponer nombres no deseados.
- Para almacenamiento a largo plazo o uso compartido con otros sistemas, evita caracteres no compatibles en los nombres de archivo.
Casos de uso
Principio técnico
El contenedor ZIP está definido por la especificación APPNOTE de PKWARE (revisión actual 6.3.10). Un archivo `.zip` es una secuencia de tres tipos de registro: cada archivo almacenado está precedido por un Local File Header con la firma de 4 bytes `0x04034b50` (PK\x03\x04) seguido de sus datos comprimidos; después del último archivo viene el Directorio Central, una tabla de File Headers (firma `0x02014b50`) que lista cada entrada con su nombre, tamaños, CRC-32 y desplazamiento de vuelta al encabezado local; finalmente el registro End of Central Directory (firma `0x06054b50`) se encuentra al final del archivo y apunta al inicio del directorio central. Los lectores analizan `.zip` desde el final: escanean hacia atrás desde el final del archivo buscando la firma EOCD, saltan al directorio central y luego buscan cada encabezado local; es por esto que ZIP soporta añadido en streaming y acceso aleatorio rápido a una única entrada sin leer el archivo completo. Esta herramienta utiliza la biblioteca JSZip (con fflate como alternativa más rápida) para ensamblar el archivo en el navegador. Cada objeto `File` seleccionado por el usuario se lee como `ArrayBuffer`, se añade con `zip.file(name, buffer)` y luego `zip.generateAsync({ type: 'blob', compression: 'DEFLATE', compressionOptions: { level: 6 } })` produce un `Blob` que se expone al usuario como descarga mediante `URL.createObjectURL()`. DEFLATE es el método de compresión estándar de ZIP, definido en RFC 1951; combina coincidencia de diccionario de ventana deslizante LZ77 con codificación Huffman. El nivel de compresión 6 (el predeterminado) es un punto de equilibrio: el nivel 1 es aproximadamente 4 veces más rápido pero un 5-15 % más grande, mientras que el nivel 9 es 2-3 veces más lento que el 6 para típicamente un 1-2 % de contracción adicional. La integridad se garantiza mediante CRC-32, calculado por archivo con el polinomio IEEE 802.3 `0xEDB88320` (invertido) y almacenado tanto en el encabezado de archivo local como en la entrada del directorio central. Los nombres de archivo se escriben en UTF-8 cuando el bit 11 del flag de propósito general está activado (obligatorio desde APPNOTE 6.3.0, 2006); sin este flag, las herramientas antiguas asumen la página de códigos OEM local (CP437 en DOS, CP936/GBK en Windows en chino) y los nombres no ASCII aparecen como caracteres corruptos. El formato ZIP clásico usa campos de 32 bits para tamaños y desplazamientos, limitando una entrada individual y el archivo total a cerca de 4 GiB (2³² − 1 = 4.294.967.295 bytes); ZIP64, definido en APPNOTE 4.5+, extiende estos a 64 bits mediante campos extra, pero la compilación en memoria de JSZip limita el tamaño práctico del archivo a unos cientos de MB antes de que las pestañas se queden sin memoria.
- Estructura del archivo ZIP (PKWARE APPNOTE 6.3.10): Local File Headers (`0x04034b50`) + datos del archivo, luego Directorio Central (`0x02014b50`), terminando en EOCD (`0x06054b50`).
- Los lectores analizan desde el final: escanean hacia atrás buscando la firma EOCD y luego saltan al directorio central, lo que permite la extracción rápida de un archivo individual sin transmitir el archivo completo.
- Compresión DEFLATE (RFC 1951) = diccionario de ventana deslizante LZ77 + codificación Huffman; el nivel 6 es el equilibrio predeterminado, el nivel 9 gana ~1-2 % a cambio de ser 2-3 veces más lento.
- Integridad: CRC-32 con el polinomio `0xEDB88320` (IEEE 802.3 invertido), almacenado tanto en el encabezado local como en el directorio central; se verifica en la extracción.
- Los nombres de archivo en UTF-8 requieren el bit 11 del flag de propósito general (APPNOTE 6.3.0, 2006); sin él, las herramientas antiguas recurren a CP437 / página OEM local y los nombres no ASCII aparecen corruptos.
- El ZIP clásico limita los tamaños a 2³² − 1 = 4.294.967.295 bytes por archivo y por archivo ZIP; los campos extra ZIP64 (APPNOTE 4.5+) se extienden a 64 bits para cargas más grandes.
- Implementación en el navegador: JSZip / fflate leen cada `File` mediante `arrayBuffer()`, construyen el archivo en memoria y lo transmiten como descarga de `Blob`, sin subida al servidor.
Ejemplos
Empaquetado de archivos de proyecto
Entradas: src/, package.json, README.md (decenas de archivos)
Salida: project-2026-06-11.zip (archivo único, compresión deflate)
Uso: compartir una instantánea con un compañero o adjuntarlo a una releaseTransferencia de varios archivos (reducir sobrecarga)
Entradas: 100 imágenes pequeñas, 5-50 KB cada una (≈ 3 MB en total)
Salida: photos.zip (un archivo, una petición HTTP, sin sobrecarga por archivo)
Uso: al subir muchos archivos pequeños a un correo o servicio de almacenamiento que cobra por archivoOrganización de documentos
Entradas: invoice.pdf, contract.docx, signed-acknowledgement.png
Salida: documents-2026Q2.zip
Uso: agrupar registros fiscales, legales o de RR. HH. en un único archivo fechado para políticas de retenciónPreguntas frecuentes
¿Se suben mis datos para crear el ZIP?
No. El archivo ZIP se crea en tu navegador con JSZip. Los archivos originales se leen con la API FileReader, se comprimen localmente y se ofrecen como descarga. Nada cruza la red.
¿Qué nivel de compresión se usa?
DEFLATE nivel 6 por defecto: un equilibrio entre velocidad y tamaño que coincide con el de la mayoría de herramientas ZIP. El contenido textual puro (logs, JSON, código fuente) comprime bien; el contenido ya comprimido (JPEG, MP4, ZIP) apenas gana nada.
¿Puedo añadir una contraseña?
JSZip no admite entradas ZIP cifradas. Si una versión ofrece protección con contraseña, suele usar ZipCrypto, que se considera muy inseguro y está roto desde hace décadas. Para una protección por contraseña real, usa 7-Zip en el escritorio con AES-256.
¿Cuál es el límite de número y tamaño de archivos?
Los límites prácticos son la memoria del navegador. Unos cientos de MB en total funcionan en la mayoría de equipos de escritorio. Los navegadores móviles son más limitados. Para empaquetados muy grandes, usa una herramienta de escritorio (7-Zip, WinRAR, zip por línea de comandos): leen del disco en lugar de mantenerlo todo en RAM.
¿Se conserva la estructura de carpetas?
Sí. Arrastra una carpeta desde tu sistema de archivos y las rutas relativas se conservan dentro del ZIP. La página puede mostrar una vista en árbol para que verifiques la estructura antes de generar el archivo.
¿El ZIP se abrirá correctamente en Windows, macOS y Linux?
Sí. JSZip produce archivos ZIP estándar. Los nombres de archivo UTF-8 funcionan en cualquier sistema moderno; versiones muy antiguas de Windows pueden mostrar nombres en chino o japonés como caracteres ilegibles si fuerzan una página de códigos distinta de UTF-8. macOS y Linux modernos manejan UTF-8 correctamente siempre.
¿Cuál es la diferencia entre ZIP y 7Z?
ZIP usa compresión DEFLATE y se puede leer en cualquier sistema operativo. 7Z usa LZMA/LZMA2 y obtiene ratios de compresión bastante mejores en texto, pero requiere 7-Zip o software compatible para extraerlo. Esta página solo genera ZIP.