JS驗證上傳的文件是否為音視頻文件格式


 

前情提要:


 

頁面上有個這個小需求。

點擊下方按鈕,只能上傳音視頻。

於是,已自己的想法,寫了一個笨辦法。

沒辦法,自己對JS 還是七竅通六竅,一竅不通,好的業務邏輯,根本想不出來,

不過能解決問題,就好,就好。


業務需求:


  音視頻文件格式,一共這些格式需要判斷:

 【.avi,.wmv,.mpg,.mpeg,.mov,.rm,.ram,.swf,.flv,.mp4,.mp3,.wma,.avi,.rm,.rmvb,.flv,.mpg,.mkv

 

代碼過程:


 

1、想法:因為需要判斷的結尾格式,太多了,直接寫在 if 判斷里,太亂了。就先用數組裝起來。

//用來驗證的后綴,如果還有其它格式,可以添加在right_type;
var right_type = new Array("avi","wmv","mpg","mpeg","mov","rm","ram","swf","flv","mp4","mp3","wma","avi","rm","rmvb","flv","mpg","mkv")    

 

2、獲取到界面上 上傳的值,進行簡單的處理。

注意點:

要進行 .match(/^(.*)(\.)(.{1,8})$/)[3] 正則表達式 匹配處理,其中 value 不能為空字符串或null
match(/^(.*)(\.)(.{1,8})$/)[3] 正則表達式的具體分析,已單開一篇寫了。

這里需要了解自行點擊下方文章鏈接:

JS中,正則表達式:match(/^(.*)(\.)(.{1,8})$/)[3]分析

 

if(document.getElementById("video").value!=''){
   type = document.getElementById("video").value.match(/^(.*)(\.)(.{1,8})$/)[3];
//防止出問題,把獲取到的所有結尾格式,全部轉化為小寫
   type = type.toUpperCase();
}

 

3、用獲取到的上傳值,和需要驗證的 音視頻結尾格式,進行判斷。

function isCon(arr, val){ 
    for(var i=0; i<arr.length; i++){ 
        if(arr[i] == val) 
            return true; 
        }
            return false; 
}
var result = isCon(right_type, type);
//可以打印開看結果,是布爾類型(Boolean),也就是: true 或 false
console.log(isCon(right_type, type)); 

 

4、最后判斷完,就可以進行業務邏輯了。

if(result == false){
    alert("請檢查您上傳的文件是否為音視頻");  
         return false;
 }else{ 
     //這里就可以寫正常的業務邏輯了         
 }

 

參看文檔:

1.  js驗證上傳的文件是否為JPEG,PNG,JPG,GIF格式。

2.  JS判斷上傳文件類型

3.  js判斷上傳文件類型判斷FileUpload文件類型代碼

 

by不言謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM