Docexp

HEIC to JPG — Why iPhone Photos Won't Upload, and Three Free Fixes

You AirDrop a photo from an iPhone, or export it from WhatsApp, and the file is named IMG_4821.jpg. You try to upload it to a form, and the form rejects it, or shows a broken-image icon, or just silently does nothing. The extension says JPEG. The file is not JPEG. It is HEIC wearing a JPEG name, and knowing that is most of the fix.

The extension is lying to you

HEIC (High Efficiency Image Container) is the format iPhones have saved photos in by default since iOS 11 — roughly half the file size of a JPEG at the same quality, which is why Apple made it the default. The problem is everything that isn't an Apple device. Chrome and Firefox cannot decode HEIC on their own; only Safari and iOS can, because HEIC uses the HEVC video codec, and Chromium and Firefox never licensed it for image decoding. So the same file opens fine on the phone that took it and fails everywhere else.

What makes this confusing rather than just annoying is that the extension often doesn't say HEIC at all. AirDrop, WhatsApp and Windows Photos will all cheerfully relabel the file .jpg while leaving the bytes untouched — the app assumes you want a name your other apps recognise, not that the format changed. The only reliable way to tell is to read the first bytes of the file: a real JPEG starts with FF D8; an HEIC file — whatever it's called — starts with the text ftyp a few bytes in, followed by a brand tag like heic or mif1. That's why "it's definitely a JPEG and it still won't upload" is such a common complaint: the name and the content disagree, and every upload form believes the name.

Three free fixes, easiest first

1. Convert it in the browser — nothing installed, nothing uploaded. Our batch image converter reads the actual bytes rather than trusting the filename, decodes HEIC using the same technique Safari uses natively, and re-encodes it as a real JPEG (or PNG or WebP) entirely on your device. Drop in one photo or a folder of them; nothing is sent anywhere, so this works for photos you wouldn't want to hand to a random converter site either. If the photo also has to hit an exact pixel size and a file-size range for an upload form — an exam application, an ID upload — the upload-form fixer does the HEIC decode and the sizing in one step, which matters because those two rules fight each other more often than not.

2. Change what your iPhone captures, going forward. Settings → Camera → Formats → "Most Compatible" makes new photos save as JPEG at the point of capture, so this only fixes photos taken after you change it — it does nothing for the one already stuck on your desktop.

3. Re-export as JPEG from the Photos app. Select the photo, use Share, and most destinations (Mail, Messages, "Save as") give you the option to convert; on a Mac, opening the file in Preview and using File → Export lets you pick JPEG explicitly. This is the slowest of the three for more than a couple of photos, since there's no batch option in the Photos app itself, but it needs nothing beyond what's already on the phone or Mac.

Frequently asked questions

Why does my HEIC photo open fine on my phone but fail everywhere else? Because HEIC decoding piggybacks on the HEVC video codec, and only Apple's operating systems ship a licence for it. Safari and iOS decode it as part of the OS; Chrome, Firefox and most Windows software do not, so the same file behaves differently depending on which device opens it.

Does converting HEIC to JPG lose quality? Some, the same way saving any JPEG at less than 100% quality does — HEIC is already a compressed format, so re-encoding to JPEG is a second lossy pass. At default quality the difference is not visible to the eye at normal viewing sizes, and it's a fair trade against a file that half the internet can't open at all.

My phone's file browser already shows it as .jpg — why won't it upload? Because the app that renamed it changed the label, not the bytes. Check by trying to open the file somewhere that only understands real JPEGs (an older photo editor, a print kiosk) — if it fails there too, it's HEIC regardless of what the name says.

Is there a way to convert several HEIC photos at once? Yes — the batch converter accepts a whole folder and returns a zip, which is the fastest route once you're past two or three photos. It's also the only one of these three fixes that doesn't require touching your phone's settings or exporting one photo at a time.