繁体   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