Image Too Large to Upload? How to Fix It on Any Device (2026)
Phone photos run 3 to 6MB and plenty of upload forms stop at 2MB. How to shrink, convert or resize an image so it uploads, on any phone or computer.
A single full-quality phone photo blows past the most common 2 MB form cap before the upload even finishes.
- 12 MP phone photo5.5 MB
Typical high-quality capture
- Many web forms2 MB
Contact forms, job portals, CMS
- Image CDNs5 MB
Common media-library default
- Discord (free)10 MB
Per-file attachment cap
You've filled in every field, attached your photo, hit submit, and the form throws it back at you: image too large. It always seems to happen on something you need to finish right now, like a job application, a visa form, or an HR portal that wants a scanned document by the end of the day.
Here's the short answer. Most of the time the image simply has far more pixels than the form needs. Resize it so the longest side is 1600 pixels and save it as a JPG at about 80% quality. Six ordinary iPhone photos put through exactly that went from an average of 4.0MB to 372KB (the test is further down), which clears nearly any upload limit you'll run into. You can do it in your browser with the compressor or resizer, and the photo never leaves your device.
If that doesn't work, the problem is probably something other than raw file size: the format (HEIC and WebP get rejected a lot), a strict kilobyte window on exam and government forms, exact pixel dimensions, or a server limit on a site you run yourself. The table below matches the error message to the fix.
What the error message is actually telling you
| What you see | What it usually means | What to do |
|---|---|---|
| "File too large" or "Max file size 2MB" | The file is over the site's size cap | Resize to 1600px, save as JPG at about 80% |
| "File size must be between 20KB and 50KB" | A strict size window, common on exam and government forms | Crop, resize to around 600px, then compress |
| "File type not supported" or "Only JPG/PNG allowed" | Usually an iPhone HEIC photo, or a WebP saved from a browser | Convert to JPG |
| "Image dimensions must be..." | The width or height in pixels is outside the allowed range | Resize to the exact numbers the form asks for |
| "413 Request Entity Too Large" | The web server refused the file before the site even saw it | Visitors: shrink the file. Site owners: raise client_max_body_size |
| "The uploaded file exceeds the upload_max_filesize directive in php.ini" | PHP's upload ceiling, which is 2MB out of the box | Site owners: raise upload_max_filesize and post_max_size |
| Upload sits at 99%, or nothing happens | A browser extension, a patchy connection, or a server limit with no error page | Try a private window, then a smaller file |
Each row has its own section below. If you already know what you need: compress an image, resize it, or convert HEIC to JPG or WebP to JPG.
Why 2MB is such a common limit
Phone photos keep getting bigger, and a lot of upload forms haven't changed in years. The six iPhone photos tested for this article weighed between 2.7MB and 6.0MB each, straight out of the camera, and they were all 12-megapixel shots. iPhone 15 and later models save 24-megapixel photos by default.
The 2MB number itself mostly comes from PHP, the language behind WordPress and a big chunk of the web. PHP's upload_max_filesize setting defaults to 2M, and plenty of sites never touch it. Some servers are stricter still: nginx, one of the most common web servers, allows just 1MB per request unless someone raises it. So when a form says 2MB, there's a decent chance nobody chose that number. It's just the default nobody changed.
Email is more forgiving. Personal Gmail accounts take attachments up to 25MB and swap anything bigger for a Google Drive link, so a single photo is rarely the problem there. It's the web forms that get you.
The fix that works almost every time: resize, then compress
Most people reach for the quality slider first. It helps, but nowhere near as much as cutting the dimensions. A 12-megapixel photo is 4032 x 3024 pixels. Scale it to 1600 x 1200 and you've dropped 84% of the pixels before any compression happens, and it still looks sharp on a phone or laptop screen.
To put real numbers on it, we took six camera-original iPhone JPEGs, shot on everything from an iPhone 8 to an iPhone 15 Pro, and saved each one three ways using libjpeg-turbo, the JPEG library that Chrome and Firefox use:
| Setting | Average file size | Smaller than the original by |
|---|---|---|
| Original camera file (4032 x 3024) | 4.0MB | - |
| Same dimensions, re-saved at quality 80 | 1.7MB | 57% |
| Longest side 1600px, quality 80 | 372KB | 91% |
| Longest side 1080px, quality 80 | 187KB | 95% |
The quality-only route is the trap. One of the six, a beach scene full of fine detail, still came out at 2.6MB after re-saving at quality 80 at full size. That fails a 2MB form. Resized to 1600px, the same photo was 545KB, and all six landed between 204KB and 545KB.
Shrink it in your browser
The compressor and resizer run on your device, so the photo isn't sent anywhere. Drop it in and watch the new file size before you download.
- Open the resizer or compressor and drop your image in.
- Set the longest side to 1600px. Use 1080px if it's going on social media or into a chat app.
- Choose JPG and set quality somewhere around 75 to 80.
- Check the new size against the form's limit, then download it and upload that copy, not the original.
When the form wants 20KB to 50KB
Exam registrations, government job portals and visa applications often play by much stricter rules than a normal website: a photo between 20KB and 50KB, say, and a signature under 20KB. The 1600px trick won't get you there. In our test, four of the six photos couldn't get under 50KB at 1600px even at quality 10, and quality 10 looks terrible anyway.
What works is going much smaller on dimensions first. At 600px on the long side, all six photos fit under 50KB without going below quality 40, and four of them stayed at 60 or higher. For a face photo that's plenty, since these forms usually show it at roughly passport-photo size.
- Crop first. Cut away everything except your face, or the signature. Less image means fewer bytes. The crop tool does this in the browser.
- Resize the long side to about 600px, or to the exact pixel size the form lists if it gives one.
- Lower the quality until the file is under the limit. The compress to 50KB and compress to 100KB tools do that search for you, and scale the image down further if quality alone can't get there.
- Watch the minimum too. Some forms also reject anything below 10KB or 20KB, so don't squeeze harder than you have to.
Converting HEIC or WebP to JPG
If the file is already small and it still gets rejected, look at the extension. iPhones have saved photos as HEIC by default since iOS 11, and a lot of upload forms still only take JPG and PNG. WebP is the other usual suspect: save an image from many websites and you'll end up with a .webp file, which older forms don't recognize either. Annoyingly, the error often says nothing about the format. It just says the upload failed.
I've been on the wrong end of this one. ImgShifter exists at all because of an afternoon I spent in a hospital bed trying to get an HR portal to accept a HEIC photo of a medical certificate. (The full story is here, along with why Apple switched formats in the first place.)
HEIC isn't a bad format. A HEIC photo is roughly half the size of the same shot as a JPEG (PhotoUp, 2025), which is exactly why Apple uses it. The problem is purely compatibility. Your options:
- Future photos on iPhone: Settings > Camera > Formats > Most Compatible. New photos will be saved as JPG (Apple).
- A photo you already took: sharing it through Mail or AirDrop often converts it to JPG on the way, though Apple only says it "might."
- On a Mac: open it in Preview, then File > Export and pick JPEG.
- On Windows: open it in Photos and use Save as, choosing JPG. You may need Microsoft's HEIF extension installed just to open the file.
- On anything with a browser, including the phone itself: the HEIC to JPG and WebP to JPG converters.
Saving a photo as PNG to “fix” an upload usually makes the size problem worse.
- HEIC2.2 MB
Smallest, but often rejected
- JPEG4 MB
The safe upload format
- PNG9 MB
Wrong tool for photos
How to resize a photo on iPhone, Android, Windows and Mac
Every platform has a built-in way to do this. Some just hide it better than others.
iPhone and iPad
- Sending photos from the Mail app? When you hit send, Mail offers Small, Medium, Large and Actual Size. Medium is usually enough.
- For everything else, the free Shortcuts app has a Resize Image action. Make a two-step shortcut (Resize Image to 1600, then Save to Photo Album) and turn on Show in Share Sheet so it's one tap from any photo.
- Or open the resizer in Safari. It works the same on a phone as on a computer.
Android
- On Samsung phones, the Gallery editor has a Resize option. Open the photo, tap the edit icon, and look under the three-dot menu. Pick a smaller percentage; 40% of a 12MP photo is about 1600px wide.
- Google Photos doesn't have a resize option, so if that's your gallery app, a browser tool like the resizer is the quickest route.
- To shoot smaller photos from now on, look in your camera app's settings for picture size or resolution.
Windows
- Open the image in the Photos app, click the three-dot menu and choose Resize image. Pick a preset or enter your own width, and there's a quality slider in the same dialog.
- Paint works too: Ctrl + W, resize by percentage, then File > Save as > JPEG picture.
- Right-click the new file and choose Properties to check the size.
Mac
- Open the image in Preview and go to Tools > Adjust Size. Set the width to 1600 with Scale proportionally ticked.
- Then File > Export, choose JPEG, and drag the quality slider. Preview shows the resulting file size right in the dialog, so you can stop as soon as you're under the limit.
Forms that want exact pixel dimensions
Some platforms care about pixels, not megabytes. Ad platforms, job sites and marketplaces often publish a required size or range, and anything outside it gets rejected however small the file is. Google Merchant Center, for instance, has a whole help page for its "image too big" error.
The opposite mistake is just as common. People resize to "small," get rejected for being under the minimum, and decide the site is broken. LinkedIn, for example, wants profile photos between 400 x 400 and 7680 x 4320 pixels, at up to 8MB (Hootsuite, 2026).
A few sizes worth remembering: 1080 x 1080 for a square social post, 1200 x 630 for link previews, and at least 400 x 400 for profile photos. When a form gives you numbers, use exactly those numbers. The Instagram size guide covers the rest of the social formats.
If it's your own website rejecting the upload
If you run the site, the image isn't the problem. The server is. On a typical WordPress setup there are three limits stacked on top of each other, and whichever is lowest wins.
| Setting | Where it lives | Default | Set it to |
|---|---|---|---|
| upload_max_filesize | php.ini | 2M | 64M |
| post_max_size | php.ini | 8M | 72M (must be higher than upload_max_filesize) |
| client_max_body_size | nginx config (http, server or location block) | 1m | 72M |
- Raise upload_max_filesize in php.ini, or through your host's control panel (on cPanel it's in the MultiPHP INI Editor). When this one is too low, WordPress says "The uploaded file exceeds the upload_max_filesize directive in php.ini."
- Set post_max_size higher than upload_max_filesize. PHP's own docs say it has to be larger. If it isn't, big uploads fail before WordPress gets a chance to report anything.
- Raise client_max_body_size if you're on nginx. When a file goes over it, nginx returns a 413 error, and the nginx docs themselves note that browsers can't display that error properly. To the person uploading, it just looks like nothing happened.
- Restart PHP-FPM and nginx. Changes don't apply to workers that are already running.
- Check it took: in WordPress, Media > Add New should now show the higher maximum upload size.
The one that catches people most often is raising upload_max_filesize and forgetting post_max_size. Every setting looks right and uploads still fail quietly. Change both, every time. Cleavr has a step-by-step walkthrough if you want exact file paths for a PHP-FPM and nginx server.
Still failing? Check these
If you've shrunk the file, it's a JPG, and the form still won't take it, it's usually one of these:
- You picked the original again. The resized copy usually lands right next to it with a near-identical name, like IMG_4512 (1).jpg. Check the size of the file you actually selected.
- A browser extension is in the way. Privacy and script blockers sometimes break upload widgets. Try the same file in a private window with extensions off.
- The filename. Emoji, accented letters and very long names can trip up older upload scripts. Rename it to something plain, like passport-photo.jpg.
- The file is now too small. If the form has a minimum, which is common on exam forms, an over-compressed file fails for the opposite reason.
- The connection dropped. Big uploads over patchy mobile data can time out partway through. Smaller files upload faster, which is one more reason to resize.
Frequently asked questions
Why does it say my image is too large when it looks small on screen?
How big a photo looks on screen has nothing to do with how big the file is. A small thumbnail can be hiding a 4032 x 3024 photo that weighs 5MB. Check the size in the file's properties (Get Info on a Mac), then resize the longest side to 1600px. That gets a typical phone photo well under 1MB.
How do I reduce an image to under 50KB?
Crop to what matters, resize the long side to around 600px, then lower the JPG quality until it fits. In our test, all six 12MP phone photos got under 50KB at 600px without dropping below quality 40. Trying to hit 50KB at full resolution just turns the photo to mush. The compress to 50KB tool does the resizing and quality search for you.
Does compressing an image ruin the quality?
Not if you resize first. A 1600px JPG at quality 80 looks sharp on phones and laptops, and in our test every one came in under 600KB. Quality only falls apart when you try to cram a full-resolution photo into a tiny limit by dragging the slider down to 10 or 20.
Why won't my iPhone photo upload to some websites?
It's probably saved as HEIC, Apple's default format since iOS 11, which a lot of sites still don't accept. Set Settings > Camera > Formats to Most Compatible for future photos, or convert the existing one to JPG before uploading.
What size should a profile photo be?
Square, at least 400 x 400 pixels, and under each platform's file cap. A JPG around 800 x 800 at under 1MB works almost everywhere. LinkedIn accepts up to 8MB, and Instagram displays profile photos at 320 x 320.
How do I increase the upload limit on my WordPress site?
Raise PHP's upload_max_filesize (default 2M), set post_max_size a little higher, and raise nginx's client_max_body_size (default 1M) if your host runs nginx. Restart PHP-FPM and nginx afterwards. The lowest of the three is your real limit.
Before you hit upload again
- Over the size limit: resize to 1600px and save as JPG at 80.
- Strict KB window: crop, resize to about 600px, then compress.
- Format rejected: convert HEIC or WebP to JPG.
- Your own site: raise upload_max_filesize, post_max_size and client_max_body_size together.
For help choosing formats in the first place, see JPEG vs PNG vs WebP vs AVIF. If you build websites, the state of web graphics goes into serving images efficiently once they're on your site.
Image still too big? Fix it in your browser
Drop it into the compressor or resizer and watch the size fall under the limit. Everything runs on your device. The only upload is the one you do yourself, to the form that asked for it.
Related articles
WebP vs. JPEG vs. PNG vs. AVIF: Which Image Format Should You Actually Use?
JPEG, PNG, WebP, and AVIF compared in plain English — what each format does well, what it breaks on, where browser support stands in 2026, and which one to actually ship for photos, graphics, and the web.
9 min read
Why Are My iPhone Photos Saving as HEIC? (And What to Do About It)
iPhones have been shooting in HEIC since 2017. Here is the actual reason - the storage math, the compatibility trade-off, and three ways to get JPEGs back when you need them.
7 min read