從JS上傳圖片代碼中找到限制大小的控件函數(shù)
2017-12-25 21:34:08
23110
這里我們找了一個(gè)簡單的JS上傳圖片前的限制包括(jpg jpg gif及大小高寬)等的代碼:
功能:
1.限制擴(kuò)展名:只能jpg || jpg和gif
2.限制圖片大?。篕為單位
3.限制圖片寬高:px為單位(要么都有,要么都無)
4.限制已經(jīng)損壞的圖片(沒有預(yù)覽的圖片)
5.限制更改過擴(kuò)展名的圖片(比如強(qiáng)制把一個(gè)動(dòng)態(tài)的GIF擴(kuò)展名改為JPG了)
使用限制:
要在InputFile里增加onchange事件,使其選擇文件后能在一個(gè)img標(biāo)簽里加載出來,否則使用會(huì)出錯(cuò)
imglimit.js
function limitImg(){
var img=document.getElementById(arguments[0]);//顯示圖片的對象
var maxSize=arguments[1];//
var allowGIF=arguments[2]||false;
var maxWidth=arguments[3]||0;
var maxHeight=arguments[4]||0;
var postfix=getPostfix(img.src);
var str=".jpg";
if(allowGIF){str+=".gif"}
if(str.indexOf(postfix.toLowerCase())==-1){
if(allowGIF){return "圖片格式不對,只能上傳jpg或gif圖像";}else{return "圖片格式不對,只能上傳jpg圖像";}
}else if(img.fileSize>maxSize*1024){
return "圖片大小超過限制,請限制在"+maxSize+"K以內(nèi)";
}else{
if(img.fileSize==-1){
return "圖片格式錯(cuò)誤,可能是已經(jīng)損壞或者更改擴(kuò)展名導(dǎo)致,請重新選擇一張圖片";
}else{
if(maxWidth>0){
if(img.width>maxWidth){
return "圖片寬度超過限制,請保持在"+maxWidth+"像素內(nèi)";
}else{
if(img.height>maxHeight){
return "圖片高度超過限制,請保持在"+maxHeight+"像素內(nèi)";
}else{
return "";
}
}
}else{
return "";
}
}
}
}
//根據(jù)路徑獲取文件擴(kuò)展名
function getPostfix(path){
return path.substring(path.lastIndexOf("."),path.length);
}
頁面調(diào)用:
<body>
<input type="file" onchange="document.getElementById('img1').src=this.value;" />
<img id="img1" />
<input type="button" onclick="aa()" value="上傳" />
</body>
<mce:script type="text/javascript"><!--
function aa(){
if(limitImg('img1',100,false,1000,100)==""){
alert("圖片上傳成功");
}else{
alert(limitImg('img1',100,false,1000,100));
}
}
// --></mce:script>
從中我們可以找到這樣一段if(img.fileSize>maxSize*1024) 啊這里就是對上傳圖片進(jìn)行的大小判斷。
安裝這樣思路我們在處理在JS里面的上傳限制的時(shí)候可以通過搜索.fileSize這樣的關(guān)鍵詞來找到我們的大小修改地方。