專案中涉及到這一需求,在此貼出程式碼分享給大家,

有2中方式,一種是input中使用accept 方式

一種是使用js正則表示式判斷,個人推薦使用js正則表示式,因為accept 有的瀏覽器並不支援,而且accept並不是強制。

 

第一種

<input  type="file" name="file" id="ck_attach_path" style="width:98%;" accept=".xls,.doc,.txt,.pdf"  />

第二種

<input type="file" name="file"   id="ck_attach_path" id="file" style="width:98%;" onchange="CheckFile(this);" >
        //檔案上傳驗證.
            function CheckFile(obj) { 
                  var array = new Array('txt', 'pdf', 'doc','docx','xls','xlsx','pptx'); //可以上傳的檔案型別 
                  if (obj.value == '') { 
                    alert("選擇要上傳的檔案!"); 
                    return false; 
                  } 
                  else { 
                    var fileContentType = obj.value.match(/^(.*)(\.)(.{1,8})$/)[3]; 
                    var isExists = false; 
                    for (var i in array) { 
                      if (fileContentType.toLowerCase() == array[i].toLowerCase()) { 
                        isExists = true; 
                        return true; 
                      } 
                    } 
                    if (isExists == false) { 
                      obj.value = null; 
                      alert("上傳檔案型別不正確!"); 
                      return false; 
                    } 
                    return false; 
                  } 
                }