今天在工做中遇到一個需求,須要在上傳文件的時候限制上傳文件的類型,好比上傳圖片的就只能上傳圖片類型的文件。 現將本身在開發中的代碼放到個人博客裏,以備在之後的開發中再次遇到。就能夠直接使用了。javascript
須要購買阿里雲產品和服務的,點擊此連接領取優惠券紅包,優惠購買哦,領取後一個月內有效: https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=fp9ccf07html
這裏就放一個小demo了。代碼以下:java
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="file" name="contractFileName" style="width: 500px;" onchange="fileChange(this);"/> <script type="text/javascript"> var isIE = /msie/i.test(navigator.userAgent) && !window.opera; function fileChange(target,id) { var fileSize = 0; var filetypes =[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"]; var filepath = target.value; var filemaxsize = 1024*2;//2M if(filepath){ var isnext = false; var fileend = filepath.substring(filepath.lastIndexOf(".")); if(filetypes && filetypes.length>0){ for(var i =0; i<filetypes.length;i++){ if(filetypes[i]==fileend){ isnext = true; break; } } } if(!isnext){ alert("不接受此文件類型!"); target.value =""; return false; } }else{ return false; } if (isIE && !target.files) { var filePath = target.value; var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); if(!fileSystem.FileExists(filePath)){ alert("附件不存在,請從新輸入!"); return false; } var file = fileSystem.GetFile (filePath); fileSize = file.Size; } else { fileSize = target.files[0].size; } var size = fileSize / 1024; if(size>filemaxsize){ alert("附件大小不能大於"+filemaxsize/1024+"M!"); target.value =""; return false; } if(size<=0){ alert("附件大小不能爲0M!"); target.value =""; return false; } } </script> </body> </html>