Short Answer
You can't.
Long Answer
Make your file input invisible using opacity
, then make a fake div
that contains a normal text input and a button, position it absolutely so that it covers the real input, then set its z index to be below the real input. Style the elements.
When a user clicks on the text input or the button, they will actually be clicking on the real input that is transparent.
Working example: styled file input