With WooCommerce File Upload your customers can upload files of any filetype (600+ filetypes) and any size at product level (including variable products) and attach it to their order.
Set multiple filetypes from 600+ types
WooCommerce File Upload comes with 600+ filetypes built in to allow your customers to upload different types of files. You can select which filetypes will be valid on the upload from the product page so it doesn’t interfere with other product upload settings.
Drag and drop interface
Upon activation of the file uploader for a selected product, your customers will be greeted with a beautiful and intuitive drag and drop area for their files. The drag and drop interface also works perfectly on all device types and viewports.
Set maximum files to upload
You can set the default maximum files to upload, easily in the settings to ensure your customers will not over-upload.
Download files from the admin order section
Once an order has placed by a customer, you (store admin) will be able to download the files attached to that order via the order section in the WordPress admin area.
Error message control
Manage your error messages easily via the settings page.
View file count
After adding a product to the basket with a file attached, you are able to see how many files are attached to that product at cart, checkout and view order level.
Manage uploaded files
If a customer accidentally selects an unneeded file, they have the capability to remove files before uploading.
AJAX add to basket
WooCommerce File Upload uses AJAX to prevent page reload for the users, all data will be sent asynchronously and return a view cart button upon success.
Please note that ‘Enable AJAX add to basket buttons on archives’ must be switched on via the WooCommerce settings (WooCommerce > Settings > Products) for this plugin to work effectively.Source