Sum文件上传输入标签大小

时间:2013-10-18 09:51:04

标签: javascript jquery html html5 file-upload

我的表单中有多个输入type=file标记。有时会隐藏一个,有时会动态创建多个。我想在我的表单上提交我检查每个文件的文件大小,我会将它们相加并检查它是否超过我设置的最大值。

我写了下面的代码:

function AcceptableFileUpload() {
    var totalsize = 0;
    var fileUploads = $("#form1 input[type=file]").length;
    for (var i = 0; i < fileUploads; i++) {
        //I added this to check whether there is any file here 
        //as I was receiving undefined when my hidden input file was checked
        if ($('#form1 input[type=file]').get(i).length > 0) {
            var filesize = $('#form1 input[type=file]').get(i).files[0].size;
            totalsize = +filesize;
        }
    }
    if (totalsize > 1073741) {
        alert("File size limit exceeded");
        return false;
    }
    return true;
}

当我只使用var filesize = $('#form1 input[type=file]').get(0).files[0].size;时,我正确地获得了文件大小,但它不像我上面写的那样工作,它说大小总是为0。感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

你可以尝试

function AcceptableFileUpload() {
   var totalsize = 0;

   $('#form1 input:file').each(function(){
     if($(this).val().length > 0){
        totalsize=totalsize+$(this)[0].files[0].size;
      }
  });
  if (totalsize > 1073741) {
      alert("File size limit exceeded");
      return false;
  }
  return true;

}