Outils Développeur

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 .pdf application/pdf Pratiquement illimité PDF valide d'une page blanche
ZIP .zip application/zip 4 GiB Archive non compressée à entrée unique

Astuces pour générer des fichiers factices

  • 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.

Questions fréquentes

Non. La génération se déroule entièrement dans votre navigateur, et le contenu n'est jamais envoyé à un serveur.

Oui : dans les navigateurs compatibles (Chrome, par exemple), l'encodeur intégré du navigateur enregistre réellement quelques secondes d'animation, si bien qu'elle se lit une fois ouverte. L'essentiel du fichier est constitué de remplissage ajouté pour atteindre la taille exacte. Le MP4 bascule automatiquement vers un fichier factice à structure valide dans les navigateurs qui ne prennent pas en charge l'enregistrement, si bien que la génération elle-même n'échoue jamais. Le WebM ne peut être sélectionné que dans les navigateurs prenant en charge l'enregistrement.

Parce que, dans ces deux formats, le champ qui enregistre la taille du fichier est fixé par la spécification à 32 bits (environ 4,29 Go maximum). Ce n'est pas une limitation de notre implémentation, mais une limite propre à la spécification du format elle-même.

TXT, CSV, JSON, BIN, PNG, PDF, MP4 et WebM n'ont aucune limite supérieure dans la spécification du format ; avec la dernière version de Chrome ou Edge (qui prend en charge l'écriture directe sur le disque), vous pouvez donc générer des fichiers extrêmement volumineux.
ツールくん

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.