All other browsers working fine. Upload process works fine, even in IE.
I'm guessing I'm missing a header. The $service object returns an array from the database with the original filename, mimetype, size and data. Data is stored as a BLOB in the database, other fields are text.