input file图片上传预览效果
两种方法,方法一:
js代码:
//头像上传预览 $("#up").change(function() { var $file = $(this); var fileObj = $file[0]; var windowURL = window.URL || window.webkitURL; var dataURL; var $img = $("#ImgPr"); if(fileObj && fileObj.files && fileObj.files[0]){ dataURL = windowURL.createObjectURL(fileObj.files[0]); $img.attr('src',dataURL); }else{ dataURL = $file.val(); var imgObj = document.getElementById("ImgPr"); imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; imgObj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = dataURL; } });
html:
<div class="picbtn"><img id="ImgPr" src="images/neik.png"</div> <a class="chooseimg" href="#"><input type="file" id="up">从手机相册中选择</a>
原生js实现,方法二:
js代码:
function $$(obj) { return document.getElementById(obj); } function upload(f){ var str = ""; for(var i=0;i<f.length;i++){ var reader = new FileReader(); reader.readAsDataURL(f[i]); reader.onload = function(e){ str+="<img src='"+e.target.result+"'/>"; $$("dd").innerHTML = str; } } }
html:
<input id="load" type="file" onchange="upload(this.files)" multiple/> <div id="dd"></div>
multiple表示可以上传多张图片
function readAsDataURL(){ var file = document.getElementById("upload").files; var result=document.getElementById("imgcon"); for(i = 0; i< file.length; i ++) { var reader = new FileReader(); reader.readAsDataURL(file[i]); reader.onload=function(e){ //多图预览 result.innerHTML = result.innerHTML + '<div class="img"><img src="' + this.result +'"><a class="imgclose" href="javascript:;" onclick="closeimg(this)"></a></div>'; } } }