A 100 MB PNG test file
File info
| File Format | PNG |
|---|---|
| File Size | 100 MB(104,857,600 bytes) |
| MIME Type | image/png |
| MD5 | 8502378977e2b6fe2fdd3c80372a0104 |
| SHA-1 | 0f8d52381b21209c11eaba412ec918f7abdd9222 |
| SHA-256 | 01e171a4827a97dd6d07efd3c28b367196b7b90396b2eda097292d0d367cdbbc |
Download via command line
curl -O https://devlab.itlibra.com/files/images/png/png-100mb.png
wget https://devlab.itlibra.com/files/images/png/png-100mb.png
Invoke-WebRequest -Uri "https://devlab.itlibra.com/files/images/png/png-100mb.png" -OutFile "png-100mb.png"
About this file
A 100 MB test file in PNG format, sized to exactly 104,857,600 bytes. Free to download with no signup, for verifying upload limits and file-handling behaviour.
The MD5, SHA-1 and SHA-256 values listed above are the real digests of this file. Recomputing them after download confirms the transfer was not corrupted, and they double as known-good expected values when testing a hashing library.
What this size means in practice
100 MB is GitHub's hard per-file push limit and also the upload cap through Cloudflare's free plan. It is likewise the point where AWS S3 recommends multipart upload instead of a single PUT.
It also exercises your timeout configuration. On a 10 Mbps link the transfer alone takes about 80 seconds, so leaving PHP's max_execution_time (default 30s) or nginx's fastcgi_read_timeout (default 60s) untouched makes the upload fail on a timeout rather than on a size check.
Getting a feel for this size
On a 10 Mbps link the transfer takes roughly 83.9 seconds, and about 8.4 seconds at 100 Mbps. Base64-encoded it grows to roughly 136,533 KB.
Estimating a photographic PNG at roughly 2 bytes per pixel, this size works out to around 52,428,800 pixels — about 8,361 × 6,271 px at a 4:3 aspect ratio. Compression varies enormously with image content, so treat this purely as an order-of-magnitude figure.
What to check for this format
PNG is lossless and carries an alpha channel. Every file starts with the fixed 8-byte signature 89 50 4E 47 0D 0A 1A 0A, followed by IHDR / IDAT / IEND chunks. The key question for upload validation is whether your code identifies the file by those leading bytes rather than by its extension.
- Whether the alpha channel survives resize and conversion — converting to JPEG destroys it
- Whether image libraries such as GD, ImageMagick, or sharp hit their memory ceiling — PNG memory use scales with decoded pixel count, not file size
- Whether metadata such as tEXt chunks is stripped — PNG has no EXIF, but text chunks can retain information
FAQ
- Is this file free to use?
- Yes — fully free and no signup required. Use it for any commercial or non-commercial test/verification purpose.
- What is inside the file?
- Dummy data generated for testing — sized to match the listed size exactly.
- What are the hash values for?
- Verify integrity after download or use them as test data for hashing libraries.