EXIF is confusing and has long been a source of bugs for image viewing/encoding across many platforms/implementations. :) (Web browsers had EXIF orientation bugs for years.) Here is one explanation:
These days cameras always write the bytes of the image in the same orientation, regardless of how the phone was held. The camera records the orientation the phone was held (in the EXIF metadata) and then many (but not all) image viewers respect that EXIF orientation data when displaying the image so that the image is then displayed in the same orientation the camera was held at.
I believe Flutter respects EXIF (we had a bug on that a while back). :)
But when handling the image data, it's important to be careful to maintain that EXIF data. Without knowing more about your setup, there are all kinds of things I could imagine going wring (some of which may be flutter's fault).
1. How are you base64-encoding the image? Is that including the image in a format which includes EXIF data (e.g. png, jpg?) or through that encoding are you losing that orientation data? (Does Flutter provide you the right means of access such that you *could* encode the image with the exif data when sending?)
2. Are whatever viewers your using on the server properly respecting the EXIF data?
In any case, I recommend reading more about EXIF and investigating. Won't really be possible for me to debug via email. :)
It's also possible this isn't related to EXIF at all, but that's my guess from what you've said so far.
Best of luck!
Eric