FileNorm
← Back to the blog
2026-01-16

HEIC vs JPG: Why Your iPhone Photos Won't Upload to Moroccan Portals

iPhones save photos as HEIC by default — and a lot of government and concours portals silently reject that format. Here's the fix.

If you've ever tried to upload a photo straight from your iPhone to a Moroccan administrative portal and gotten a vague "invalid file" error with no explanation, this is almost always why: your photo is saved as HEIC, not JPG, and the portal's upload form only accepts JPG or PNG.

What is HEIC, and why does Apple use it?

HEIC (High Efficiency Image Container) is Apple's default photo format since iOS 11. It compresses better than JPEG at the same visual quality, which saves storage space on your phone. Technically it's a smart format.

The problem: it's still not universally supported. Most web forms, especially older or simpler government portals, only parse JPEG and PNG — they were never built to expect HEIC, so the upload silently fails or the "Invalid format" error shows up with zero explanation of what's actually wrong.

How to tell if this is your problem

  • The file was taken on an iPhone (default camera app)
  • Its filename ends in .heic or .HEIC
  • The portal's error message doesn't mention size at all, or the error appears instantly (before any size check could even run)

The fix

Convert the photo to JPG before uploading. This is a lossless-enough operation for practical purposes — you're not losing meaningful quality, you're just repacking the same image data into a format everything can read.

You can do this two ways:

  1. On the iPhone itself: Settings → Camera → Formats → "Most Compatible" makes future photos save as JPG automatically. This doesn't fix photos you already took.
  2. Convert existing photos: use a HEIC to JPG converter that runs in your browser — drop the file, get a JPG back, nothing is uploaded to a server in the process.

One more thing worth checking

If your portal also has a size limit (very common — 100 KB, 500 KB), converting HEIC to JPG and then compressing to the target size in one pass saves a step. Do the conversion first, verify the JPG opens and looks right, then compress if the portal specifies a size.

Tools mentioned in this article