Générateur de fichiers factices
Générez des fichiers factices d'une taille exacte en octets — images, audio, vidéo, PDF, texte, etc. — entièrement dans votre navigateur. Pratique pour tester les limites de taille des formulaires de téléversement. Les fichiers ne sont jamais envoyés à un serveur.
Format
| Format | Extension | Type MIME | Limite selon la spécification | Remarque |
|---|---|---|---|---|
| Texte (TXT) | .txt |
text/plain |
Pratiquement illimité | Rempli avec du texte lisible répété |
| CSV | .csv |
text/csv |
Pratiquement illimité | Données de tableau factices avec ligne d'en-tête |
| JSON | .json |
application/json |
Pratiquement illimité | Rempli dans un seul champ de type chaîne |
| Binaire (BIN) | .bin |
application/octet-stream |
Pratiquement illimité | Octets arbitraires répétant de 0x00 à 0xFF |
| Image (PNG) | .png |
image/png |
Pratiquement illimité | Image 1x1 valide + chunk de remplissage |
| Audio (WAV) | .wav |
audio/wav |
4 GiB | Données PCM silencieuses (réellement lisibles) |
| Vidéo (MP4) | .mp4 |
video/mp4 |
Pratiquement illimité | Enregistrement réel dans les navigateurs compatibles, factice à structure valide sinon |
| Vidéo (WebM) | .webm |
video/webm |
Pratiquement illimité | Animation de quelques secondes réellement enregistrée (navigateurs compatibles uniquement) |
.pdf |
application/pdf |
Pratiquement illimité | PDF valide d'une page blanche | |
| ZIP | .zip |
application/zip |
4 GiB | Archive non compressée à entrée unique |
Qu'est-ce qu'un générateur de fichiers factices ?
Lorsqu'on développe une fonction de téléversement, il faut vérifier que les limites de taille et les contrôles d'extension fonctionnent réellement comme prévu. Cela nécessite un fichier « exactement d'un nombre d'octets donné, tout en restant valide pour son format » — et ce genre de fichier n'est pas toujours facile à trouver sous la main. Cet outil génère du texte, des images, de l'audio, de la vidéo, des PDF, des archives ZIP et bien plus, chacun à la taille exacte demandée.
Chaque fichier généré est constitué de données valides conformes à la spécification de son format. De nombreux formats réservent des zones qu'un analyseur est autorisé à ignorer, et c'est précisément dans ces zones que l'outil ajoute du remplissage pour ajuster la taille, de sorte qu'aucune erreur ne survient à l'ouverture. Tout le traitement se déroule dans le navigateur, et rien n'est jamais envoyé à un serveur. À noter que WAV et ZIP sont plafonnés à 4 Go par leur spécification de format.
Comment générer un fichier factice
- Choisir un format de fichier Sélectionnez le format accepté par votre cible de test. Pour tester la validation de l'extension ou du type MIME, choisissez précisément ce format.
- Indiquer la taille Saisissez un nombre et une unité. Pour une limite de « 10 Mo », la frontière se déplace selon qu'on l'interprète comme 10 000 000 ou 10 485 760 octets.
- Définir le nom du fichier Vous pouvez inclure l'extension dans le nom choisi. Modifiez-le si vous souhaitez tester des règles de rejet basées sur le nom.
- Générer et télécharger Cliquez sur « Générer » pour créer le fichier. Les grandes tailles prennent plus de temps, et vous pouvez annuler à tout moment pendant la génération.
Astuces pour en tirer le meilleur parti
- La logique de validation des formulaires de téléversement vérifie souvent séparément trois éléments : l'extension, le type MIME et la taille du fichier. Comme cet outil génère des fichiers valides à tous les autres égards, vous pouvez tester la limite de taille de manière isolée.
- Une limite de « 10 Mo maximum » peut correspondre à 10 000 000 octets (106) selon une implémentation, ou à 10 485 760 octets (220) selon une autre. Le sélecteur d'unité vous permet de choisir les deux bases, afin de tester à la fois la valeur limite exacte et un octet au-delà.
- Chrome et Edge diffusent les données directement vers le lecteur choisi, si bien que des fichiers de plusieurs dizaines de Go peuvent être générés sans solliciter la mémoire. Firefox et Safari assemblent d'abord le fichier en mémoire, ce qui impose une limite pratique à la taille.
- Dans les navigateurs compatibles, la vidéo (MP4/WebM) est réellement enregistrée sous la forme de quelques secondes d'animation grâce à l'encodeur intégré du navigateur, si bien qu'elle se lit vraiment une fois ouverte. Tout le reste — le remplissage qui constitue l'essentiel du fichier, ainsi que le contenu des autres formats d'image et d'audio — est factice. L'objectif est uniquement de tester la validation de la taille, de l'extension et du type MIME.
Utilisations des fichiers factices
Tests aux valeurs limites des téléversements
Créez un fichier exactement à la limite et un autre un octet au-delà, puis testez les deux. Vous vérifiez ainsi si le message d'erreur apparaît exactement là où la spécification le prévoit.
Vérification des contrôles d'extension et de type MIME
Générez un format autorisé et un format interdit, puis soumettez les deux pour identifier lequel des deux critères provoque réellement le rejet.
Vérification du comportement lors de gros transferts
Avec des fichiers de plusieurs gigaoctets, vous pouvez vérifier que l'affichage de la progression, les délais d'expiration et la reprise après interruption fonctionnent correctement, sans avoir besoin de données réelles.
Estimation du stockage et de la bande passante
En déposant réellement un fichier de la taille prévue, vous pouvez mesurer concrètement la consommation de stockage et le temps de transfert.
Vocabulaire autour de la validation de fichiers
- Type MIME
- Une chaîne indiquant la nature d'un fichier, écrite par exemple
image/png, couramment utilisée pour décider si un téléversement est autorisé. - Test aux valeurs limites
- Une méthode de test qui vérifie le point exact d'une limite ainsi que les valeurs juste avant et juste après, car les anomalies s'y concentrent le plus souvent.
- Remplissage
- Des données sans signification ajoutées uniquement pour atteindre la taille visée. Elles sont placées dans des zones que le format autorise à ignorer, si bien que le fichier reste intact.
- Go contre Gio
- Un Gio correspond à 1 073 741 824 octets, tandis qu'un Go correspond à 1 000 000 000 octets. Cet écart est une cause fréquente de mauvaise interprétation des limites de taille.
- Écriture en flux
- Une méthode qui écrit les données vers leur destination petit à petit, ce qui permet de traiter même de très gros fichiers sans les charger entièrement en mémoire.
Questions fréquentes
Anecdote — La frontière entre un fichier « valide » et un fichier « corrompu »
La plupart des formats de fichier réservent des zones qu'un analyseur (parser) est explicitement autorisé à ignorer : les chunks inconnus du PNG, la boîte free du MP4 et l'élément Void du WebM en sont des exemples. Ces zones ont été conçues dès l'origine comme un espace réservé pour de futures extensions, que les analyseurs actuels doivent ignorer — les remplir n'endommage donc jamais le fichier.
Pour la vidéo, nous la rendons réellement lisible en plaçant de véritables images avant le remplissage. Écrire soi-même l'encodage bit à bit d'un codec est trop difficile à garantir comme correct ; nous laissons donc l'encodeur intégré du navigateur lui-même (l'API MediaRecorder) enregistrer quelques secondes d'une animation sur un canvas, puis nous ajoutons le remplissage ensuite. C'est une façon de concilier le principe « toujours renvoyer un fichier garanti valide » avec le souhait de l'utilisateur de « voir vraiment une vidéo ».
Fait intéressant, un fichier ZIP est conçu de sorte qu'il suffit de lire le « répertoire central » situé à la fin pour connaître la liste complète de son contenu. On dit que cela remonte à l'époque des bandes magnétiques, où l'on lisait à partir de la fin — et c'est encore aujourd'hui la raison pour laquelle on peut extraire très rapidement un seul fichier d'un ZIP volumineux.