1 MB sample files

A 1,048,576-byte file: exactly the default upload limit of nginx, Spring Boot and Next.js. Available in 39 formats.

Download a 1 MB file

Each file is exactly 1,048,576 bytes and is a valid file of its format.

1 MB sample files in every available format
FileFormatSizeContentsDownload
1 MB PDF samplesample-pdf-1mb.pdf PDF 1 MB1,048,576 bytes Pages: 10 Download PDF
1 MB TXT samplesample-txt-1mb.txt TXT 1 MB1,048,576 bytes Numbered lines: 10,547 Download TXT
1 MB CSV samplesample-csv-1mb.csv CSV 1 MB1,048,576 bytes Data rows: 7,885 Download CSV
1 MB JSON samplesample-json-1mb.json JSON 1 MB1,048,576 bytes Records: 3,029 Download JSON
1 MB XML samplesample-xml-1mb.xml XML 1 MB1,048,576 bytes Elements: 3,267 <customer> records Download XML
1 MB PNG samplesample-png-1mb.png PNG 1 MB1,048,576 bytes 677 × 515 px Download PNG
1 MB JPG samplesample-jpg-1mb.jpg JPG 1 MB1,048,576 bytes 2,007 × 1,504 px Download JPG
1 MB ZIP samplesample-zip-1mb.zip ZIP 1 MB1,048,576 bytes Entries: 4 Download ZIP
1 MB BIN samplesample-bin-1mb.bin BIN 1 MB1,048,576 bytes Pseudo-random bytes Download BIN
1 MB JSONL samplesample-jsonl-1mb.jsonl JSONL 1 MB1,048,576 bytes Lines: 3,075 Download JSONL
1 MB SQL samplesample-sql-1mb.sql SQL 1 MB1,048,576 bytes Statements: 1 CREATE TABLE, 4,652 INSERT Download SQL
1 MB LOG samplesample-log-1mb.log LOG 1 MB1,048,576 bytes Lines: 6,411 Download LOG
1 MB GZ samplesample-gz-1mb.gz GZ 1 MB1,048,576 bytes Uncompressed size: 12,226,979 bytes Download GZ
1 MB TAR samplesample-tar-1mb.tar TAR 1 MB1,048,576 bytes Entries: 2 (README.txt, payload.bin) Download TAR
1 MB DOCX samplesample-docx-1mb.docx DOCX 1 MB1,048,576 bytes Headings, paragraphs, a bulleted list, a table and one image Download DOCX
1 MB XLSX samplesample-xlsx-1mb.xlsx XLSX 1 MB1,048,576 bytes Data rows: 15,333 Download XLSX
1 MB PPTX samplesample-pptx-1mb.pptx PPTX 1 MB1,048,576 bytes Slides: 5 Download PPTX
1 MB EPUB samplesample-epub-1mb.epub EPUB 1 MB1,048,576 bytes Chapters: 12 Download EPUB
1 MB GIF samplesample-gif-1mb.gif GIF 1 MB1,048,576 bytes 480 × 360 px Download GIF
1 MB WebP samplesample-webp-1mb.webp WebP 1 MB1,048,576 bytes 682 × 512 px Download WebP
1 MB BMP samplesample-bmp-1mb.bmp BMP 1 MB1,048,576 bytes 683 × 510 px Download BMP
1 MB SVG samplesample-svg-1mb.svg SVG 1 MB1,048,576 bytes Shapes: 14,284 circles and rectangles Download SVG
1 MB MP3 samplesample-mp3-1mb.mp3 MP3 1 MB1,048,576 bytes 1 min 6 s Download MP3
1 MB WAV samplesample-wav-1mb.wav WAV 1 MB1,048,576 bytes 5.9 s Download WAV
1 MB MP4 samplesample-mp4-1mb.mp4 MP4 1 MB1,048,576 bytes 640 × 360 px Download MP4
1 MB HTML samplesample-html-1mb.html HTML 1 MB1,048,576 bytes Sections: 1,865 Download HTML
1 MB Markdown samplesample-md-1mb.md Markdown 1 MB1,048,576 bytes Sections: 2,271 Download Markdown
1 MB RTF samplesample-rtf-1mb.rtf RTF 1 MB1,048,576 bytes Sections: 2,949 Download RTF
1 MB YAML samplesample-yaml-1mb.yaml YAML 1 MB1,048,576 bytes Records: 4,336 Download YAML
1 MB TOML samplesample-toml-1mb.toml TOML 1 MB1,048,576 bytes Tables: 6,420 [[record]] entries Download TOML
1 MB INI samplesample-ini-1mb.ini INI 1 MB1,048,576 bytes Sections: 8,933 Download INI
1 MB CSS samplesample-css-1mb.css CSS 1 MB1,048,576 bytes Features: Custom properties, class selectors, rem and px units Download CSS
1 MB JS samplesample-js-1mb.js JS 1 MB1,048,576 bytes Array entries: 8,427 Download JS
1 MB SRT samplesample-srt-1mb.srt SRT 1 MB1,048,576 bytes Cues: 8,941 Download SRT
1 MB VTT samplesample-vtt-1mb.vtt VTT 1 MB1,048,576 bytes Cues: 8,940 Download VTT
1 MB ICS samplesample-ics-1mb.ics ICS 1 MB1,048,576 bytes Events: 3,075 Download ICS
1 MB EML samplesample-eml-1mb.eml EML 1 MB1,048,576 bytes Body paragraphs: 3,149 Download EML
1 MB GeoJSON samplesample-geojson-1mb.geojson GeoJSON 1 MB1,048,576 bytes Features: 5,340 Download GeoJSON
1 MB OBJ samplesample-obj-1mb.obj OBJ 1 MB1,048,576 bytes Vertices: 17,700 Download OBJ

What is a 1 MB test file?

One megabyte is the most common default limit on the web. nginx refuses request bodies over 1 MB unless told otherwise, Spring Boot caps each uploaded file at 1 MB, and Next.js applies the same figure to API routes and Server Actions.

Because this sample is exactly 1,048,576 bytes, it shows which side of the line your stack falls on. Uploaded through a multipart form it is slightly over a 1 MB body limit, since the form adds its own headers, so a default nginx configuration answers with 413 Request Entity Too Large.

In everyday terms: About a minute of MP3 audio, or a high-quality photo.

Limits near 1 MB

Default limits in widely used software that a 1 MB file is useful for testing. Defaults change between versions, so confirm them in the documentation for the version you run.

SystemLimitWhat happens at 1 MB
nginx1 MB by default (client_max_body_size)A multipart upload of this file exceeds the limit by the size of the form boundaries.
Spring Boot multipart1 MB per file by default (max-file-size)A file of exactly 1 MB is at the limit.
Next.js API routes and Server Actions1 MB by defaultLarger bodies need the size limit raised in configuration.
Cloud Firestore documents1 MiB (1,048,576 bytes)The same number of bytes as this file.
Apache Kafka messagesAbout 1 MB by defaultBrokers reject larger records unless message.max.bytes is raised.

Good for

  • Finding the first upload limit in a new stack
  • Boundary tests at exactly 1 MiB
  • Testing audio and photo uploads
  • Download tests on mobile connections

Transfer time

How long 1,048,576 bytes take to move, before any compression.

1 Mbit/s (slow mobile or uplink)8.4 seconds
10 Mbit/s (basic broadband)under 1 second
100 Mbit/s (fast broadband)under 1 second

Related

Next sizes: 500 KB sample files and 5 MB sample files.

1 MB files: questions

Is 1 MB one million bytes?
Not here. This file is 1,048,576 bytes (1,024 × 1,024), the binary megabyte that operating systems and server limits generally use. One million bytes would be about 4.6 percent smaller.
Why does my 1 MB upload fail on nginx?
The default client_max_body_size is 1 MB and applies to the whole request body. A multipart upload wraps the file in boundaries and headers, so the body is a few hundred bytes over. Raise the directive to allow it.