用javascript實現圖片上傳並預覽
阿新 • • 發佈:2019-01-04
/**
* Created by Administrator on 2016/4/28.
*/
//上傳圖片並預覽
function previewImg(fileInput,imgDiv){
if(window.FileReader){//支援FileReader的時候
var reader=new FileReader();
reader.readAsDataURL(fileInput.files[0]);
reader.onload=function (evt){
imgDiv.innerHTML="\<img src="+evt.target.result+"\>";
}
}else{//相容ie9-
imgDiv.innerHTML='<div class="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + fileInput.value + '\)\';"></div>' ;
}
}
function selectImg(fileInputs,imgDivs){
var checkImg=new RegExp("(.jpg$)|(.png$)|(.bmp$)|(.jpeg$)","i");
var i=0;
for(;i<fileInputs.length&&i<imgDivs.length;i++){
(function(i){//立即執行函式;儲存i
fileInputs[i].onchange=function (){
if(checkImg.test(fileInputs[i].value)){
previewImg(this,imgDivs[i]);
}else{
alert("只支援上傳.jpg .png .bmp .jpeg;你的選擇有誤");
}
};
})(i);
}
}
/* 為IE6 IE7 IE8增加document.getElementsByClassName函式 */
/MSIE\s*(\d+)/i.test(navigator.userAgent);
var isIE=parseInt(RegExp.$1?RegExp.$1:0);
if(isIE>0&&isIE<9){
document.getElementsByClassName=function(cls){
var els=this.getElementsByTagName('*');
var ell=els.length;
var elements=[];
for(var n=0;n<ell;n++){
var oCls=els[n].className||'';
if(oCls.indexOf(cls)<0) continue;
oCls=oCls.split(/\s+/);
var oCll=oCls.length;
for(var j=0;j<oCll;j++){
if(cls==oCls[j]){
elements.push(els[n]);
break;
}
}
}
return elements;
}
}
var fileInputs=document.getElementsByClassName("img-btn");//檔案選擇按鈕
var imgDivs=document.getElementsByClassName("img-container");//圖片容器
selectImg(fileInputs,imgDivs);