You can use a microflow with validation and conditions for check the form is get completed or, once every field get completed means you can provide the upload functions.
When the FileDocument entity is committed, the file will be uploaded. So if I have a page with a dataview containing a FileDocument and select a file in the File Manager widget, that file is not uploaded immediately. It is only loaded when I click the Save button, or when a microflow commits that entity.
Does that help?