Stylish input type file upload with image Preview

11 / Feb / 2016 by Milan Chourasia 0 comments

Few days back I have tried to change the look of input type file but unable to change like background,border etc. Actually, it looks different in all browsers.

Now I found a solution to do this.

Here is the HTML which have been used:-

<div class="uploadOuter">
<input type="text" class="uploadText"/>
<input type="file" class="uploadFile"/>
<div class="Preview">
<img src="" alt=""/>
<span class="loader"></span>

At first I have taken an outer div with name “uploadOuter”, then inserted an input type: text field showing the path of files selected locally. Afterwards, I have placed input type file which placed over the input type:text. Also I had set the opacity:None. For IMG Preview purpose I have taken ‘Preview’ div.

By using jQuery I have showcased the path of the selected file into the input type text and image Preview.

Here is the CSS which have been used:-

.uploadOuter {margin: 6px 0;min-height:30px;border:1px solid #ccc;position: relative;width: 310px;}
.uploadFile {opacity: 0;position: absolute;right: 0;top: 0;z-index: 2;height:100%; width: 100%;}
.uploadText{width:100%;height:100%;position:absolute;border:none;padding:0 0 0 10px;background: url(‘imagePathOfBrowseButton’) no-repeat right center}
.Preview{width:200px;border:1px solid #ccc;position:relative;display:none}
.Preview img{width:100%;}
.loader{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0, 0, 0, 0.5) url(‘imagePath’) no-repeat center center;z-index:99; }

Here is the jQuery which have been used:-

var filePath = URL.createObjectURL([0]);
var fileName =[0].name;
//var fileName = $(this).val();
$(‘.Preview img’).attr(‘src’,filePath);


Leave a Reply

Your email address will not be published. Required fields are marked *