You can't modify much about input[type=file]
.
Best you can do is place whatever you want to trigger it on your page, and then absolutely position theinput
over that with opacity: 0
.
The user's click on your apparent control will really trigger the invisible input
on top.
Here is how I may do it with CSS...
HTML
<div id="upload-file-container">
<input type="file" name="photo" />
</div>
CSS
#upload-file-container {
background: url(images/custom-file-input.png) no-repeat;
}
#upload-file-container input {
filter: alpha(opacity=0);
opacity: 0;
}