Javascript - 确定文件大小

时间:2013-06-26 10:52:13

标签: javascript jquery html5

我在页面上有多个文件输入。这些是唯一定义的,我不能使用multiple属性。当他们提交此表单时,脚本将运行并检查每个上载元素的空值。

我创建了一个小的状态加载器,为用户提供了一些很好的视觉反馈,我想要做的部分工作向他们展示了总上传大小。不幸的是,我写的是针对DOM元素而不是它引用的实际文件。我已经阅读了API文档和this,但我在这里遗漏了一些内容。

jQuery( "#submit" ).on("click", function(event) {

    var inputs = document.getElementsByTagName('input'),
        files = [],
        size;

    for(i=0; i<inputs.length; i++) {
        if( inputs[i].getAttribute('type') == "file" && inputs[i].value != 0 ) {
            files.push(inputs[i].id);       
            }
        }

    for(j=0; j<files.length; j++) {
        size += document.getElementById(files[j]).size;
        }

    console.log(size); //returns NAN

//other stuff
});

由于

1 个答案:

答案 0 :(得分:3)

我认为你无法做到:document.getElementById(files[j]).size,那里不存在.size属性。

请尝试从document.getElementById(files[j]).files阅读。

你可以这样:document.getElementById(files[j]).files[0].size

如果您有multiple="multiple",我认为这不重要。

请注意,您的代码中存在错误。 size的初始值为undefinedundefined + 1234NaN(非数字)