Create a User Role with permissions to only upload files to the media library?

Install Justin Tadlock’s Members Plugin. It has per-configured roles that allow in-depth control over users. If the standard roles don’t allow the amount of access control you want, you can create a custom role and assign your specific access level.