feat(product): file upload support