Developer Tools
Dummy File Generator
Generate dummy files of an exact byte size — images, audio, video, PDFs, text, and more — entirely in your browser. Handy for testing upload form size limits. Files are never sent to a server.
Format
| Format | Extension | MIME Type | Spec Limit | Notes |
|---|---|---|---|---|
| Text (TXT) | .txt |
text/plain |
Effectively unlimited | Padded with readable, repeating text |
| CSV | .csv |
text/csv |
Effectively unlimited | Dummy tabular data with a header row |
| JSON | .json |
application/json |
Effectively unlimited | Padded into a single string field |
| Binary (BIN) | .bin |
application/octet-stream |
Effectively unlimited | Arbitrary bytes cycling through 0x00–0xFF |
| Image (PNG) | .png |
image/png |
Effectively unlimited | Valid 1x1 image + padding chunk |
| Audio (WAV) | .wav |
audio/wav |
4 GiB | Silent PCM data (genuinely playable) |
| Video (MP4) | .mp4 |
video/mp4 |
Effectively unlimited | Real recording in supporting browsers, structure-only placeholder otherwise |
| Video (WebM) | .webm |
video/webm |
Effectively unlimited | A genuinely recorded few-second animation (supporting browsers only) |
.pdf |
application/pdf |
Effectively unlimited | Valid, blank single-page PDF | |
| ZIP | .zip |
application/zip |
4 GiB | Uncompressed, single-entry archive |
Tips for Generating Dummy Files
- Upload form validation logic often checks extension, MIME type, and file size as three separate steps. Because this tool generates files that are valid in every other respect, you can isolate and test the size limit alone.
- A "10MB limit" can mean 10,000,000 bytes (106) in one implementation and 10,485,760 bytes (220) in another. The unit selector lets you pick either base, so you can test both the exact boundary value and one byte past it.
- Chrome and Edge stream data directly to your chosen drive, so files tens of gigabytes in size can be generated without straining memory. Firefox and Safari assemble the file in memory first, which imposes a practical size limit.
- In supporting browsers, video (MP4/WebM) is actually recorded as a few seconds of animation using the browser's built-in encoder, so it genuinely plays when opened. Everything else — the padding that makes up most of the file, and the contents of the other image/audio formats — is a dummy. The goal is purely to test size, extension, and MIME type validation.
Frequently Asked Questions
Side Note — Where "Valid" Ends and "Corrupt" Begins
Most file formats set aside regions that a parser is explicitly allowed to skip — PNG's unknown chunks, MP4's free box, and WebM's Void element are all examples. These were designed from the start as space reserved for future extensions that today's parsers are meant to ignore, so padding them out never corrupts the file.
For video, we make the file genuinely playable by placing real footage before the padding. Hand-writing bit-level codec encoding ourselves is too hard to guarantee correct, so instead we let the browser's own built-in encoder (the MediaRecorder API) record a few seconds of a canvas animation, then append padding afterward. It's a way to reconcile "always return a guaranteed-valid file" with "the user actually wants to see a video."
Interestingly, a ZIP file is designed so that reading only the "central directory" at the very end reveals the full list of its contents. This is said to be a holdover from the magnetic-tape era, when archives were read from the tail — and it is still why a single file can be pulled out of a huge ZIP almost instantly today.