What I find weird about this thread is that the CSV file is somehow on the device to start with, and presumably didn’t come from a server, else there would be no need to upload it.
What I’m concerned about is that the app is creating the CSV from scratch, because creating well-formed CSV robust in the face of weird edge cases is a lot harder than people who haven’t shot themselves repeatedly in the foot trying to do it would think.