Hi Gregory,
I'd suggest to have a look at the binary value of the file and find out how the file gets interpreted by your development system.
To inspect the file, use one of the hex editor available.
Best Free Hex Editor | Gizmo's Freeware
I have used xvi32 and found it reliable.
Debug the uploaded data in your dev system to find out the binary value to make sure it's the same.
It could be that the data type for your internal table in the upload program interprets the data incorrectly.
Please also note that endianness of Windows and Unix are different but I don't think it plays role in this case since you upload from the same machine where the file is download to.
Attach screenshots of the binary values if you're not sure.
Regards,
Stev