https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.SelectFileWidget
It uses the HTML5 File API, which is one of it's fallbacks since it's still only somewhat supported across browsers, but maybe eventually this could be converted. see http://caniuse.com/#feat=fileapi
It also requires JS.
SelectFileWidgets allow for selecting files, using the HTML5 File API. These widgets can be configured with icons and indicators. Please see the OOjs UI documentation on MediaWiki for more information and examples.
There's also the OOUI upload dialog (MediaSearchWidget):
- Upload dialog on mediawiki.org - https://www.mediawiki.org/wiki/Upload_dialog
- Local uploads and support for cross-wiki uploads - https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw.ForeignStructuredUpload.BookletLayout
- Structured fields with support for cross-wiki uploads - https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw.Upload.BookletLayout