[英]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; }
仍然可以通過各種方式對其進行優化,因此它可用於任何性能,語義或重構編輯。 我不是專家。
var _maxFilsize
您必須編寫允許的最大文件大小(以字節為單位)。 Function Validate
參數oForm
需要一個HTML object
,通過它可以搜索輸入字段。 input
元素存儲在數組arrInputs
。 arrInputs[i].type
以string
形式存儲在變量inputType
if/else
語句中將inputType
的值與不同的輸入類型進行比較。 returns
一個function
,用於驗證匹配的輸入字段 validateImage
函數接受一個參數,該參數只是輸入字段的屬性,其中包含用戶arrInputs[i].files
選擇的文件列表。 validateImage
函數中,存在一個for循環,該循環遍歷文件列表並驗證文件的type
和size
,並根據文件的有效性返回true
或false
。 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.