Compression et empaquetage ZIP
Empaqueter plusieurs fichiers en une archive ZIP, téléchargement par glisser-déposer, traitement local dans le navigateur
Glissez les fichiers ici, ou cliquez pour sélectionner
Supporte tous les types de fichiers, plusieurs fichiers autorisés
Qu'est-ce que la compression ZIP ?
L’empaquetage ZIP regroupe plusieurs fichiers sélectionnés dans une archive téléchargeable et facilite souvent l’envoi ou le stockage. Il sert à transmettre des fichiers dispersés, préparer un lot de livraison, regrouper des captures, joindre plusieurs documents à un e-mail ou créer une petite sauvegarde. ZIP est un format sans perte : après extraction, les fichiers doivent être restaurés à l’identique. En revanche, les formats déjà compressés comme JPG, PNG, MP4 ou PDF peuvent peu diminuer. Cet outil de navigateur crée l’archive localement, sans envoyer les fichiers sélectionnés au serveur. Il convient aux ensembles modérés; de très gros fichiers peuvent consommer beaucoup de mémoire. Un ZIP n’est pas un chiffrement, les fichiers sensibles demandent une protection supplémentaire.
Comment utiliser
Comment utiliser
- Glissez vos fichiers dans la zone de dépôt ou cliquez sur le bouton « Select Files » pour les ajouter
- Vérifiez la liste des fichiers et supprimez les fichiers indésirables si nécessaire
- Saisissez un nom de fichier ZIP (facultatif)
- Cliquez sur le bouton « Créer l'archive ZIP » pour télécharger le fichier compressé
Notes sur les archives
- Vérifiez les noms de fichiers et la structure des dossiers avant de créer l'archive ; ZIP conserve les chemins et peut exposer des noms non désirés.
- Pour le stockage à long terme ou le partage avec d'autres systèmes, évitez les caractères non pris en charge dans les noms de fichiers.
Cas d’utilisation
Principe technique
Le conteneur ZIP est défini par la spécification APPNOTE de PKWARE (révision actuelle 6.3.10). Un fichier `.zip` est une séquence de trois types d'enregistrements : chaque fichier stocké est précédé d'un Local File Header avec la signature sur 4 octets `0x04034b50` (PK\x03\x04) suivi de ses données compressées ; après le dernier fichier vient le Central Directory, un tableau de File Headers (signature `0x02014b50`) qui répertorie chaque entrée avec son nom, ses tailles, son CRC-32 et son décalage vers le local header ; enfin l'enregistrement End of Central Directory (signature `0x06054b50`) se trouve à la toute fin du fichier et pointe vers le début du central directory. Les lecteurs analysent le `.zip` depuis la fin : ils scannent à rebours depuis la fin du fichier pour trouver la signature EOCD, sautent vers le central directory, puis accèdent à chaque local header — c'est pourquoi ZIP prend en charge l'ajout en flux et l'accès aléatoire rapide à une seule entrée sans lire l'intégralité de l'archive. Cet outil utilise la bibliothèque JSZip (avec fflate comme alternative plus rapide) pour assembler l'archive dans le navigateur. Chaque objet `File` sélectionné par l'utilisateur est lu sous forme d'`ArrayBuffer`, ajouté avec `zip.file(name, buffer)`, puis `zip.generateAsync({ type: 'blob', compression: 'DEFLATE', compressionOptions: { level: 6 } })` produit un `Blob` exposé à l'utilisateur sous forme de téléchargement via `URL.createObjectURL()`. DEFLATE est la méthode de compression ZIP standard, définie dans la RFC 1951 ; elle combine le dictionnaire à fenêtre glissante LZ77 avec le codage de Huffman. Le niveau de compression 6 (par défaut) est un compromis — le niveau 1 est environ 4× plus rapide mais 5 à 15 % plus volumineux, tandis que le niveau 9 est 2 à 3× plus lent que 6 pour un gain supplémentaire typique de 1 à 2 %. L'intégrité est assurée par le CRC-32, calculé par fichier avec le polynôme IEEE 802.3 `0xEDB88320` (inversé), et stocké à la fois dans le local file header et l'entrée du central directory. Les noms de fichiers sont écrits en UTF-8 lorsque le bit 11 du drapeau général est positionné (obligatoire depuis APPNOTE 6.3.0, 2006) ; sans ce drapeau, les anciens outils supposent la page de codes OEM locale (CP437 sur DOS, CP936/GBK sur Windows chinois) et les noms non ASCII apparaissent corrompus. Le format ZIP classique utilise des champs 32 bits pour les tailles et les décalages, limitant une entrée individuelle et l'archive totale à environ 4 Gio (2^32 − 1 = 4 294 967 295 octets) ; le ZIP64, défini dans APPNOTE 4.5+, étend ces valeurs à 64 bits via des champs supplémentaires, mais la construction en mémoire de JSZip contraint la taille pratique de l'archive à quelques centaines de Mo avant que les onglets n'épuisent la mémoire.
- Structure du fichier ZIP (PKWARE APPNOTE 6.3.10) : Local File Headers (`0x04034b50`) + données de fichier, puis Central Directory (`0x02014b50`), terminé par l'EOCD (`0x06054b50`).
- Les lecteurs analysent depuis la fin : ils scannent à rebours pour trouver la signature EOCD, puis sautent vers le central directory — cela permet une extraction rapide d'un seul fichier sans parcourir l'intégralité de l'archive.
- Compression DEFLATE (RFC 1951) = dictionnaire à fenêtre glissante LZ77 + codage de Huffman ; le niveau 6 est le compromis par défaut, le niveau 9 gagne environ 1-2 % pour une vitesse 2-3× moindre.
- Intégrité : CRC-32 avec le polynôme `0xEDB88320` (IEEE 802.3 inversé), stocké à la fois dans le local header et le central directory ; vérifié à l'extraction.
- Les noms de fichiers UTF-8 nécessitent le bit 11 du drapeau général (APPNOTE 6.3.0, 2006) ; sans lui, les anciens outils retombent sur CP437 / la page OEM locale et corrompent les noms non ASCII.
- Le ZIP classique limite les tailles à 2^32 − 1 = 4 294 967 295 octets par fichier et par archive ; les champs supplémentaires ZIP64 (APPNOTE 4.5+) étendent à 64 bits pour des charges plus volumineuses.
- Implémentation navigateur : JSZip / fflate lisent chaque `File` via `arrayBuffer()`, construisent l'archive en mémoire et la diffusent sous forme de `Blob` téléchargeable — aucun envoi au serveur.
Exemples
Empaquetage de fichiers de projet
Entrées : src/, package.json, README.md (des dizaines de fichiers)
Sortie : project-2026-06-11.zip (archive unique, compression deflate)
Usage : partager un instantané avec un coéquipier ou joindre à une releaseTransfert multi-fichiers (réduction de la surcharge)
Entrées : 100 petites images, 5-50 Ko chacune (≈ 3 Mo au total)
Sortie : photos.zip (un fichier, une requête HTTP, sans surcharge par fichier)
Usage : pour téléverser de nombreux petits fichiers vers un service d'e-mail ou de stockage facturant à l'unitéOrganisation de documents
Entrées : invoice.pdf, contract.docx, signed-acknowledgement.png
Sortie : documents-2026Q2.zip
Usage : regrouper les documents fiscaux, juridiques ou RH dans une archive unique datée pour les politiques de conservationFAQ
Mes données sont-elles téléversées pour créer le ZIP ?
Non. Le fichier ZIP est créé dans votre navigateur via JSZip. Les fichiers d'origine sont lus avec l'API FileReader, compressés localement, puis proposés au téléchargement. Rien ne traverse le réseau.
Quel niveau de compression est utilisé ?
DEFLATE niveau 6 par défaut, un équilibre entre vitesse et taille correspondant à ce qu'utilisent la plupart des outils ZIP. Le contenu purement textuel (logs, JSON, code source) se compresse bien ; le contenu déjà compressé (JPEG, MP4, ZIP) ne gagne presque rien.
Puis-je ajouter un mot de passe ?
JSZip ne prend pas en charge les entrées ZIP chiffrées. Si une version propose la protection par mot de passe, elle utilise généralement ZipCrypto, largement considéré comme non sécurisé et cassé depuis des décennies. Pour une vraie protection, utilisez 7-Zip sur le bureau avec AES-256.
Quelles sont les limites en nombre de fichiers et en taille ?
Les limites pratiques sont la mémoire du navigateur. Quelques centaines de Mo au total fonctionnent sur la plupart des ordinateurs de bureau. Les navigateurs mobiles sont plus restrictifs. Pour de très grands packagings, utilisez un outil de bureau (7-Zip, WinRAR, zip en ligne de commande) qui lit en flux depuis le disque au lieu de tout garder en RAM.
Les structures de dossiers sont-elles préservées ?
Oui. Glissez un dossier depuis votre système de fichiers et les chemins relatifs sont préservés à l'intérieur du ZIP. La page peut afficher une vue arborescente afin que vous puissiez vérifier la structure avant la génération.
Windows, macOS et Linux ouvriront-ils le ZIP correctement ?
Oui. JSZip produit des fichiers ZIP standards. Les noms de fichiers UTF-8 fonctionnent partout sur les systèmes modernes ; les très anciennes versions de Windows peuvent afficher les noms chinois ou japonais comme illisibles si une page de codes non-UTF-8 est imposée. macOS et Linux modernes gèrent toujours UTF-8 correctement.
Quelle est la différence entre ZIP et 7Z ?
ZIP utilise la compression DEFLATE et est lisible universellement sur tous les OS. 7Z utilise LZMA/LZMA2 et obtient des taux de compression nettement meilleurs sur le texte, mais nécessite 7-Zip ou un logiciel compatible pour l'extraction. Cette page ne produit que du ZIP.