[英]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.