A file input button for all browsers, is this possible? A file input button for all browsers, is this possible? jquery jquery

A file input button for all browsers, is this possible?


I can't remember the source of the technique but this seems to be cross-browser. Tested in:

  • Google Chrome 9
  • FireFox 3.6
  • Internet Explorer 6-9
  • Opera 10
  • Safari for Windows

Here is the complete code:

HTML:


<div>    <button><!-- this is skinnable -->Pick a file ...</button>    <input type="file" /></div>

CSS:


div{    position:relative;    width: 100px;    height: 30px;    overflow:hidden;}div button{    position: absolute;    width: 100%;    height: 100%;}div input{    font: 500px monospace; /* make the input's button HUGE */    opacity:0; /* this will make it transparent */    filter: alpha(opacity=0); /* transparency for Internet Explorer */    position: absolute;  /* making it absolute with z-index:1 will place it on top of the button */    z-index: 1;    top:0;    right:0;    padding:0;    margin: 0;}

The idea is to make the <input type="file" /> transparent and place it on top of some style-able content (a <button> in this case). When the end user clicks the button she will actually click the <input type="file" />.


The simple way to use a "label" tag and "for" property. Like this http://jsfiddle.net/Txrs6/ but in this case we don't see a chosen file.CODE

<label for="inputFile" class="col-sm-3" style="padding-left: 0px;"><a class="btn btn-info">Выбрать...</a></label>`<input style="display: none;" type="file" id="inputFile">

Another way with js http://jsfiddle.net/PZ5Ep/


Your best bet in that case would be to use a flash uploader. This would introduce a complete separate control and would have no dependency on the browser. There are plenty of them on the net. Here's one : http://swfupload.org/