This question has been asked a few times; unfortunately, I can’t find the thread where I had the full answer.
During the 3.0 release, some development code was unintentionally left in. Actually, what got left in was just the “file” selection in the list, but the upload scripts were not. The roadmap has inclusion for file field type for version 3.1 when a number of things will be updated for custom fields (including additional field types).
By the time the file field type inclusion was noticed, several people were already trying to use it. So of these were premium support subscribers so I worked with them to develop an uploader script to use with it until it was officially included.
The file uploader script is available as a gist on github:
https://gist.github.com/butlerblog/a7585aeb0fa0be3c7dc2
Instructions for using this script are commented in the code. If you have a file field (or fields) to be required, you will need to use the wpmem_pre_register_data action function at the end. To use that, make sure you uncomment the add_action line and manually set your required file fields. Other than that, it is cut-and-paste.