I found a solution you might try. There is a lot of explanation and code here but I'll post some of it.
It makes use of another input box laying on top of your browse box and some javascript and css tricks.
1. Take a normal <input type="file"> and put it in an element with position: relative.
2. To this same parent element, add a normal <input> and an image, which have the correct styles. Position these elements absolutely, so that they occupy the same place as the <input type="file">.
3. Set the z-index of the <input type="file"> to 2 so that it lies on top of the styled input/image.
4. Finally, set the opacity of the <input type="file"> to 0. The <input type="file"> now becomes effectively invisible, and the styles input/image shines through, but you can still click on the "Browse" button. If the button is positioned on top of the image, the user appears to click on the image and gets the normal file selection window.
(Note that you can't use visibility: hidden, because a truly invisible element is unclickable, too, and we need the <input type="file"> to remain clickable)
The rest is at:
http://www.quirksmode.org/dom/inputfile.html (I'm not affiliated with this site, I find it through google, first result for "style file browse field in HTML")