JS上傳圖片前的限制

來源:互聯網
上載者:User

 功能:

1.限制副檔名:只能jpg || jpg和gif

2.限制圖片大小:K為單位

3.限制圖片寬高:px為單位(要麼都有,要麼都無)

4.限制已經損壞的圖片(沒有預覽的圖片)

5.限制更改過副檔名的圖片(比如強制把一個動態GIF副檔名改為JPG了)

 

使用限制:

要在InputFile裡增加onchange事件,使其選擇檔案後能在一個img標籤裡載入出來,否則使用會出錯

 

imglimit.js

function limitImg(){<br />var img=document.getElementById(arguments[0]);//顯示圖片的對象<br />var maxSize=arguments[1];//<br />var allowGIF=arguments[2]||false;<br />var maxWidth=arguments[3]||0;<br />var maxHeight=arguments[4]||0;<br />var postfix=getPostfix(img.src);<br />var str=".jpg";<br />if(allowGIF){str+=".gif"}<br />if(str.indexOf(postfix.toLowerCase())==-1){<br />if(allowGIF){return "圖片格式不對,只能上傳jpg或gif映像";}else{return "圖片格式不對,只能上傳jpg映像";}<br />}else if(img.fileSize>maxSize*1024){<br />return "圖片大小超過限制,請限制在"+maxSize+"K以內";<br />}else{<br />if(img.fileSize==-1){<br />return "圖片格式錯誤,可能是已經損壞或者更改副檔名導致,請重新選擇一張圖片";<br />}else{<br />if(maxWidth>0){<br />if(img.width>maxWidth){<br />return "圖片寬度超過限制,請保持在"+maxWidth+"像素內";<br />}else{<br />if(img.height>maxHeight){<br />return "圖片高度超過限制,請保持在"+maxHeight+"像素內";<br />}else{<br />return "";<br />}<br />}<br />}else{<br />return "";<br />}<br />}<br />}<br />}<br />//根據路徑擷取副檔名<br />function getPostfix(path){<br />return path.substring(path.lastIndexOf("."),path.length);<br />}

 

頁面調用:

<body><br /><input type="file" onchange="document.getElementById('img1').src=this.value;" /><br /><img id="img1" /><br /><input type="button" onclick="aa()" value="上傳" /><br /></body><br /><mce:script type="text/javascript"><!--<br />function aa(){<br />if(limitImg('img1',100,false,1000,100)==""){<br />alert("圖片上傳成功");<br />}else{<br />alert(limitImg('img1',100,false,1000,100));<br />}<br />}<br />// --></mce:script>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.