Launch offer — 25% off with code KZOTAZOAGet it for €9
For developers & QA engineers · macOS

Test files in any format, at exactly the size you ask for.

FileMill is a small Mac app that generates valid files in 135 formats, sized to the byte, ready to drag straight into whatever you're testing. And when you need the wrong file, it breaks them on purpose.

Download free trialComing soonBuy for €12Coming soon

14-day trial · no account · one-time purchase, no subscription

Every developer has a test-file graveyard.

A PDF borrowed from accounting. A big.bin of unknown origin. One sad JPEG. None of them are the right size, none of them cover your edge cases, and you still don't have a valid WOFF2 anywhere.

FileMill replaces all of that. Pick a format, type a size, and get a file that actually opens, with contents that look like a real document instead of random noise.

FileMill filename menu open with options for spaces, Unicode, long names, double extensions, uppercase extensions, leading dots, and special characters.

Try it right here

This is a small piece of the real generator running in your browser: four formats, exact sizes, and one break mode. The app does the same for all 135 formats, up to 8 GB.

Format
Size
Content
Runs entirely in your browser — nothing is uploaded.
Byte-exact sizes

Files that land exactly on your upload limit.

Ask for 4 MB and you get 4,000,000 bytes. FileMill uses decimal units, the same ones Finder shows, so the size you type is the size you get. No more "close enough" fixtures that quietly slip past the limit you wanted to test.

Boundary mode takes it a step further: one click gives you a file one byte under your limit, one exactly at it, and one byte over. Those are the three files every size check should be tested with.

FileMill generation controls creating multiple PDF files with exact custom sizes and naming rules.
FileMill content menu open with valid, corrupt header, random bytes, truncated, and zero-byte options.
Break modes

Break it before your users do.

Real uploads fail in ugly ways. Transfers get cut off halfway, headers get mangled, and someone will rename an .exe to .pdf and hit submit. FileMill makes all of those on purpose and labels them clearly, so you can watch your error handling deal with them before a user does.

Filenames get the same treatment: emoji, 200-character names, invoice.pdf.exe, leading dots. A surprising share of upload bugs live in the name, not the file.

Test kit & queue

One file of everything, in one click.

Testing an allowlist? Press ⌘⇧G and FileMill generates one file of all 135 formats at your chosen size, or at random sizes within a range. Drag the whole set into your uploader and watch what sticks.

For repeatable runs, queue up several configurations and fire them together. Favorites keep your daily formats close, and your own real-world samples live in the same library.

FileMill result list showing a Windows executable generated with a mismatched PDF extension for upload validation tests.

Everything an upload form fears

Valid files for the happy path, and broken ones for everything else.

135 formats

Documents, spreadsheets, images, audio, video, fonts, archives, 3D/CAD, localization files, certificates — and the ones you can never find samples of.

Byte-exact sizes

Ask for 4 MB, get exactly 4,000,000 bytes. FileMill uses decimal units, so Finder agrees to the byte.

Structurally valid

Correct magic bytes and internal structure. The PDFs open, the ZIPs unzip, the PNGs render, the notebooks parse.

Professional content

Realistic spreadsheet data, styled documents, working code — not random bytes. Previews and demos look real.

Break things on purpose

Corrupt headers, truncated files, random bytes, zero-byte files, wrong extensions — every failure path, one dropdown away.

Hostile filenames

Emoji, spaces, double extensions like invoice.pdf.exe, UPPERCASE endings, leading dots, 200-character names.

Boundary mode

One byte under, exactly at, and one byte over your upload limit — generated together in one click.

Random sizes

Roll the dice within your own min–max range, per file or for a whole test kit.

Test kit

One file of every visible format in a single click (⌘⇧G). Perfect for allowlist matrices.

Copy as real files

⌘C puts actual files on the clipboard for any upload dialog. SHA-256 checksums are one click away.

Batch queue

Line up multiple configurations and run them together. Drag results straight into Finder or Slack.

Bring your own files

Drag real-world samples into FileMill and keep them in your library next to generated fixtures — Quick Look, copy, and drag them out anytime.

Favorites & profiles

Pin the formats you use daily and switch between validation profiles like Upload limit, MIME mismatch, or Zero-byte in one click.

Settings travel with you

Export your whole setup — favorites, sizes, metadata defaults — as one file and import it on another Mac.

Private by design

Fully offline generation. The only network request ever made is validating your license key.

Built for the unhappy paths

The full list of break modes, hostile filenames, and size options.

Break the content

Six content modes, one dropdown

  • Validcorrect structure, real content
  • Corrupt headermagic bytes deliberately broken
  • Truncatedvalid start, cut off mid-file
  • Random bytesright extension, noise inside
  • Zero-byteempty files for required-field checks
  • Wrong extensionreal PDF saved as .txt

Break the filename

The other half of upload bugs

  • Double extensioninvoice.pdf.exe
  • Unicode + emojiünïcödé 日本語 🚀
  • Very long200-character names
  • With spaces“sample file (upload test)”
  • UPPERCASEsample.PDF
  • Leading dothidden files

Control the size

Exact when you want it, chaotic when you don't

  • Byte-exactfrom 1 B up to 8 GB
  • Boundary modelimit −1, exact, and +1 in one run
  • Random sizeswithin your own min–max range
  • Test kitall 135 formats in one click
  • Batch queueseveral configurations, one run
  • Name tokens{index}, {size}, {date}, {uuid}…

Is your format in here?

Probably. Search all 135, every one byte-exact and structurally valid.

135 formats across 11 categories

Documents

37
.pdf.txt.md.rtf.docx.doc.pptx.ppt.xlsx.xls.csv.tsv.json.html.xml.yaml.yml.toml.ini.log.sql.eml.ics.vcf.epub.po.xliff.xlf.strings.odt.ods.odp.pages.numbers.keynote.msg.plist

Data

9
.jsonl.ndjson.sqlite.parquet.geojson.gpx.kml.torrent.ipynb

Code

11
.js.ts.css.php.py.sh.wasm.go.rb.java.swift

Fonts

4
.woff2.woff.ttf.otf

Pictures

11
.jpg.png.gif.webp.avif.heic.tiff.bmp.svg.ico.eps

Audio

7
.wav.aiff.mp3.aac.m4a.flac.ogg

Video

8
.mp4.mov.m4v.webm.mkv.avi.srt.vtt

3D

21
.obj.fbx.stl.3mf.gltf.glb.dae.ply.usd.usda.usdc.usdz.step.stp.iges.igs.dxf.dwg.skp.ma.mb

Creative

10
.psd.psb.ai.indd.aep.prproj.xd.blend.c4d.fig

Archives

10
.zip.jar.apk.ipa.tar.gz.7z.rar.bz2.xz

Other

7
.bin.dat.iso.dmg.exe.pem.crt

For terminals too.

The same engine ships as a command-line tool, so your scripts and CI jobs can mill fixtures on demand. It prints one absolute path per file, which makes it easy to pipe into whatever comes next.

# one valid 4 MB PDF
filemill pdf 4mb

# five numbered JSONL datasets
filemill jsonl 100kb --count 5 --name "dataset-{index2}"

# the classic: invoice.pdf.exe
filemill exe 2mb --filename double-extension

One price, everything included

Buy it once and it's yours. No subscription, no account, no tiers.

Launch offer: 25% off with code KZOTAZOA€9
€12

one-time purchase · no subscription

  • All 135 formats & every feature
  • Free 14-day trial, no account
  • One license, 3 Macs
  • Bundled CLI for scripts & CI
  • 1 year of updates included
Buy FileMill — €12Coming soon

30-day money-back guarantee — no questions asked.

Frequently asked questions

Anything we missed? Email us and a human will get back to you.

135 and counting, from the everyday ones (PDF, PNG, DOCX, MP4, ZIP) to the ones you can never find a sample of anywhere (WOFF2, SQLite, GPX, XLIFF, USDZ, torrent). If the one you need is missing, email us. Most requests ship in the next release.

Yes. They have the correct magic bytes and internal structure, so the file command identifies them, previews render them, and parsers parse them. Files are only broken when you pick a break mode, and those are clearly labeled in the app.

To the byte. Ask for 4 MB and the file is 4,000,000 bytes. FileMill uses decimal units, the same ones Finder shows, so the size you type is the size you see.

Yes. Everything runs locally on your Mac, and you don't need an internet connection to generate files.

Anywhere from 1 byte up to 8 GB. You can type an exact size, randomize within a range, or generate boundary files around an upload limit.

Yes. FileMill can create corrupt headers, truncated files, random bytes, zero-byte files, and real files saved with the wrong extension.

Yes. The bundled CLI uses the same generator and prints one absolute path per file, so it slots into shell scripts, test runs, and CI jobs.

Yes. Drag your real-world files into the library and they'll sit right next to your generated fixtures, ready to reuse.

No. The trial doesn't ask for one, and file generation never leaves your Mac.

Every license includes a year of updates: new formats, features, and fixes. If you want another year after that, renewing is 50% off.

FileMill keeps working and you can keep generating files. You just stop receiving new updates until you renew.

Email us within 30 days of purchase and you get a full refund. No questions asked, no forms to fill in.

Yes, macOS 13 or later. The command-line tool is included.

Give your upload form a hard time.

Try FileMill free for 14 days. If it earns its keep, it's €12 — or €9 during launch.