It seems like you are expecting the app to handle the upload asynchronously, and to allow the user to navigate/do things while this occurs.
Unfortunately, there will always be the time required for the file to upload. PowerApps, as well, will want the Submit function to complete before processing other data.
The simplest thing to do is to manage your user's expectations with a saving/blocking pattern. For example, you would show a saving spinner while the Submit function is occurring, so the user is aware of the upload. This is common in almost every app on every device, and users expect it.
To accomplish this:
- Add a Screen called 'Saving Data'
- Add verbiage indicating something like "Saving your data..."
- Optionally add a loading animation from www.loading.io or equivalent
- Update your code
- Before the Submit, add Navigate('Saving Data')
- After the Submit, add Navigate( { Screen user should go back go } )
This is a very simple way of accomplishing this. The objective is to present something to the user which lets them know something is happening (the dots on the PowerApps screen are not great at this).
You will not be able to increase the upload speed with code alone - at least not dramatically. This is heavily dependent on the user's device, connection speed, and the size of the file. Instead, manage their expectations.