Like a lot of people, I\'d like to customize the ugly input type=file, and I know that it can\'t be done without some hacks and/or javascript. But,
input type=file
javascript
A much better way than writing JS is to use native, and it turns to be lighter than what was suggested:
This way the label is automatically connected to the input that is hidden. Clicking on the label is like clicking on the field.
label