The action of uploading should always be the result of a user action. The action of uploading a file could be done by selecting an action button to open a modal or it may be done inline in a full page form or slide in or over panel.
Wherever possible there should always be a drag and drop zone, using the file drop component, as well as the ability to browse locally and select a file. Note that file selection should be restricted to only allowed file types.
As with the individual file upload there should always be a drag and drop zone, using the file drop component, as well as the ability to browse locally and select a files.
After the files have been dropped into the field, they should be entered info a table underneath the drop zone, given the user visibility of the items they have uploaded and the status of that process.
If the user is required to input details about the files being uploaded then the files should be displayed in cards underneath the drop zone, with the fields to be completed on them.
Upload errors can be displayed inline in this view.