FileFits
5 min

Photo too large to upload: what the limit actually is

Upload errors come from three different limits: file weight, pixel dimensions, or file format. Here is how to tell which one stopped you, what the real numbers are on the forms people hit, and how to get under it.

"File too large" is one error message hiding at least three unrelated limits, and the fix is different for each one. It is worth knowing which limit you actually hit before you start compressing, because shrinking the file weight does nothing if the form is really rejecting the pixel dimensions.

Three limits wearing the same error message

File weight. The number of kilobytes or megabytes the file occupies. This is the one most people mean, and the only one compression fixes. A form that says "maximum 200 KB" is talking about weight.

Pixel dimensions. How many pixels wide and tall the image is, which is a separate thing entirely. The US DS-160 visa form wants a square photo between 600 x 600 and 1200 x 1200 pixels; a 4032 x 3024 phone photo fails on dimensions even after you have squeezed it to 50 KB. Compressing harder will never fix this, because compression changes weight, not dimensions.

Format. Some uploaders report an unsupported format as a size error, which is genuinely misleading. If you are on a recent iPhone, the file is probably HEIC, and a great many forms and websites do not accept HEIC at all.

The quickest way to tell them apart: if the error mentions KB or MB, it is weight. If it mentions pixels or a minimum size, it is dimensions. If it appeared instantly, before any upload progress bar moved, it is very often the format.

The limits on the forms people actually hit

  • Gmail: 25 MB per message, including attachments and encoding overhead. Anything larger is offered as a Drive link instead. Aim for a couple of megabytes below the ceiling rather than at it, because base64 encoding inflates an attachment by roughly a third in transit.
  • Company mail servers: frequently 10 MB, sometimes less, and set by whoever runs the server rather than by any standard. This is why a photo sends fine from your personal address and bounces from your work one.
  • WordPress: often 2 MB, and not because WordPress chose it. PHP ships with upload_max_filesize set to 2M by default, and plenty of shared hosts never raise it.
  • WhatsApp: around 16 MB for a photo or video sent as media. Photos are recompressed on the way regardless, so sending one that is already small preserves more of it.
  • US DS-160: 240 KB maximum, square, 600 x 600 to 1200 x 1200 pixels. Three constraints at once, which is why it is the form that generates the most complaints.
  • Chinese visa portal: 40 to 120 KB, with a floor as well as a ceiling. A file that is too small is rejected too.

Why an iPhone photo is almost always the one that fails

A recent iPhone shoots at 12 megapixels by default and up to 48 on the Pro models, which produces a file of roughly 2 to 5 MB straight out of the camera. That is fine for a photo library and much too big for a form expecting 200 KB.

It is also HEIC rather than JPG, so the upload can fail on format before weight is ever considered. If the photo is a Live Photo, you may also be handing over a short video attached to a still image. Converting HEIC to JPG solves the format half of the problem and flattens the Live Photo to a single frame at the same time.

Getting under the limit without wrecking the photo

There are only two levers. The first is JPEG quality, which throws away detail the eye is least likely to miss. The second is pixel dimensions, which throws away pixels outright. Most tools only pull the first one, and that is why heavily compressed photos look smeared: forced to reach 50 KB at full resolution, an encoder drops quality to the point where the image visibly falls apart.

Pulling both levers gives a far better result. A 4032 x 3024 photo reduced to 1600 x 1200 and encoded at good quality looks clean at 100 KB, where the same photo kept at full resolution and crushed to 100 KB does not. Our size tools do this automatically: they search for the quality setting that lands just under the target, and if that setting would be low enough to look bad, they reduce the canvas and try again. Start with compress image to 200 KB or 100 KB, or use the attachment presets for Gmail and WhatsApp.

One important exception: when a form specifies exact pixel dimensions, the dimensions are the requirement and you must not downscale past them. Visa and passport tools such as the US visa photo preset hold the pixel size fixed and reach the byte budget with quality alone, which is the right way round for that job.

Three fixes that do not work

Screenshotting the photo. It does usually make the file smaller, by throwing away resolution in the worst possible way, and on a phone it also crops to the screen shape and bakes in whatever was on screen. For an ID photo it will fail the dimension check.

Renaming the extension. Changing .heic to .jpg renames the file, not its contents. A well-built uploader reads the file header and rejects it anyway; a badly built one accepts it and shows a broken image later.

Zipping it. JPEG and PNG are already compressed. A ZIP of a JPG is essentially the same size as the JPG, and now the recipient has to unpack it.

If the file was already small enough

Worth checking before you compress anything. Re-encoding a photo that already fits usually makes it slightly larger, not smaller, because the encoder is being asked for higher quality than the original was saved at. Compare the file size against the stated limit first. If it already fits, the error is about dimensions or format, and compressing will make things worse.

More from the blog