If you try to do it through Wix Stores, then it is not possible yet.
https://support.wix.com/en/article/request-adding-an-upload-file-option-to-your-product-page
https://support.wix.com/en/article/request-selling-customizable-products-in-wix-stores
For Wix Stores with Corvid, see here.
https://support.wix.com/en/corvid-by-wix/wix-stores-with-corvid
As for code, then you can start by looking at the addToCart api reference here.
https://www.wix.com/corvid/reference/$w.CartIcon.html#addToCart
Plus, see a good previous post from Steve explaining about using it here.
https://www.wix.com/corvid/forum/community-discussion/add-button-to-add-to-cart
You will probably have to set up the product with the best option that you can do and then have the user upload any images on a customer user input form and saved into a separate dataset, of which where you can get the image from and possibly also that the current user can see on screen so that they can upload more than the one image and choose which one they want etc for each product etc.
You can even have a custom text box on your product page too, so that users can once again state their picture choice to, so in theory you are double checking their image choice.
https://support.wix.com/en/article/adding-a-customer-message-box-to-your-wix-stores-product-page