Moving to use HTML5 file readers to load the images and send them as byte strings to the backend. Haven't quite figured out the encoding portion of that yet.

 The byte string definitely ends up in the database though.
images are now being correctly sent and stored in the database. Sent as base 64 encoding, stored decoded and treated as actual images on a specific route. Seems like a neat solution to me, only question is whether it takes advantage of caching (or should).

Javascript code is a little stateful for my liking so might fix that at some point.