Allow customers to pay to upload a file.
If you allowed every user to upload a file without yet making a payment then every time a payment failed or you used a payment method that waits for an IPN response, your disk space will be consumed by files you should not have received. By waiting until after payment this keeps things cleaner.
Uploaded files are stored in your wp-content/uploads folder, a new folder named "wc-pay-to-upload" will be created and within that each order will have it's own folder based on the order ID.
Once files are uploaded you can view them from the admin view of the order. A meta box is added to the side with links to the files.