Eine mögliche, wenn auch nicht besonders gute Lösung, da sie nur auf dem IE ab 5er läuft.
<form>
<input type="file" id="datei" style="display:none;">
<img src="file.gif" onClick="getElementById('datei').click()">
</form>
Der Trick bei dem ganzen ist das file-Feld zu verstecken. Dafür wird ein beliebiges Bild definiert, beim clicken auf das bild wird das click-Ereignis auf dem versteckten aber vorhandenen file-Feld ausgelöst.
Die Lösung ist nicht sauber ausgearbeitet, wenn das für dich interessant ist musst du dafür sorgen, dass nur der IE ab 5 mit dieser Lösung fährt und alle anderen Browser trotzdem das normalen file-Feld bekommen.
gruss
Curt