How do I add a file upload field to user profile?
Use Content Profile.

By default Content Profile puts the additional fields in a tab on the profile page. If you want them to be all in one page use Account Profile