簡體   English   中英

JavaScript上傳文件大小

[英]Javascript upload file size

我需要有關上傳文件大小的幫助。 我想添加文件最大大小2MB。

我使用javascript代碼,但我對javascript不太滿意,因此如果你們可以在我的代碼中添加文件大小。 謝謝。

 var _validFileExtensions = [".jpg", ".jpeg", ".png"]; function Validate(oForm) { var arrInputs = oForm.getElementsByTagName("input"); for (var i = 0; i < arrInputs.length; i++) { var oInput = arrInputs[i]; if (oInput.type == "file") { var sFileName = oInput.value; if (sFileName.length > 0) { var blnValid = false; for (var j = 0; j < _validFileExtensions.length; j++) { var sCurExtension = _validFileExtensions[j]; if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) { blnValid = true; break; } } if (!blnValid) { alert("Sorry, " + sFileName + " is invalid, allowed extensions are: " + _validFileExtensions.join(", ")); return false; } } } } return true; } 

這是我最終寫的代碼

仍然可以通過各種方式對其進行優化,因此它可用於任何性能,語義或重構編輯。 我不是專家。

代碼說明

  1. var _maxFilsize您必須編寫允許的最大文件大小(以字節為單位)。
  2. Function Validate參數oForm需要一個HTML object ,通過它可以搜索輸入字段。
  3. 將所有input元素存儲在數組arrInputs
  4. arrInputs[i].typestring形式存儲在變量inputType
  5. if/else語句中將inputType的值與不同的輸入類型進行比較。
  6. 滿足條件時,每個塊都returns一個function ,用於驗證匹配的輸入字段
  7. validateImage函數接受一個參數,該參數只是輸入字段的屬性,其中包含用戶arrInputs[i].files選擇的文件列表。
  8. validateImage函數中,存在一個for循環,該循環遍歷文件列表並驗證文件的typesize ,並根據文件的有效性返回truefalse

var _maxFilesize = 2000000;// in bytes
function Validate(oForm) {
    var arrInputs = oForm.getElementsByTagName("input");
    var inputType;
    var i = 0;
    var arrLength = arrInputs.length;
    for (i; i < arrLength; i++) {
        inputType =arrInputs[i].type.toString();
        if (inputType === "file"){
            return validateImage(arrInputs[i].files);//calls function for validating image
        }else if(inputType === "email"){
            //call email validating function
        }//add validation for more fields
    }
}
function validateImage(file){
    var j = 0;
    var NumberOfFiles = file.length;
    for(j; j< NumberOfFiles;j++){
        if ((file[j].type === "image/jpeg" || file[j].type === "image/png")&& (file[j].size)<= _maxFilesize){
            return true //or whatever you want to do here like calling a function to upadate view, or something
        }
        else{
            return false //or whatever you want to do here like calling a function to upadate view, or something
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM