What to use when specifying an empty link
href="#", make sure onclick always contains return false; at the end, that any called function does not throw an error and if you attach a function dynamically to the onclick property make sure that as well as not throwing an error it returns false.
The second is clearly easier to communicated.
Styling input type=file field
Many relevant links: