Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery所有上载文件的总大小-警报后重置大小_Javascript_Jquery - Fatal编程技术网

Javascript Jquery所有上载文件的总大小-警报后重置大小

Javascript Jquery所有上载文件的总大小-警报后重置大小,javascript,jquery,Javascript,Jquery,我正在编写一个jquery代码,将单个上传文件的大小限制为特定大小(如1Mb),并将所有上传文件的大小总和限制为特定数量(如5MB),这意味着只要单个文件的大小不超过1Mb,您可以上传任意多个文件,所有文件的总大小必须小于5Mb。我是JQuery的初学者,所以所有的帮助都很好。我下面的代码可以工作,但问题是,当total size超过set max时,它会抛出一个警报,但文件的大小仍然包含在total中,这意味着您无法添加一个较小的文件,该文件将符合限制。我需要以某种方式重置它,以便每次都检查它

我正在编写一个jquery代码,将单个上传文件的大小限制为特定大小(如1Mb),并将所有上传文件的大小总和限制为特定数量(如5MB),这意味着只要单个文件的大小不超过1Mb,您可以上传任意多个文件,所有文件的总大小必须小于5Mb。我是JQuery的初学者,所以所有的帮助都很好。我下面的代码可以工作,但问题是,当total size超过set max时,它会抛出一个警报,但文件的大小仍然包含在total中,这意味着您无法添加一个较小的文件,该文件将符合限制。我需要以某种方式重置它,以便每次都检查它。我把所有的东西都找遍了,但找不出来

$(文档)。在(“更改”、“输入[type=file]”上,函数(){

var file=this.files[0];
如果(file.size>200*1024){
警报(“文件太大,单个文件的最大文件大小为5 MB”);
$(此)。替换为(“”);
返回false;
}
}))

var总计=0;
$(document).on(“更改”,“输入[type=file]”,function(){
对于(var i=0;i250*1024){
警报(“总大小太大:“+Total”);
$(此)。替换为(“”);
返回false;
} 

}))

将if条件移动到for循环中,这样它会在运行中检查总大小,如果总大小大于限制,则从总大小中删除最后添加的文件大小谢谢,它可以工作:)唯一的问题是,现在最后一个值已删除,但我无法替换其他文件并从总大小中排除该值。
var file = this.files[0];

if (file.size > 200*1024) {
    alert("The file is too large. Maximum file size of individual file is 5 MB.");
    $(this).replaceWith('<input type="file">');
    return false;
}
 var total = 0;


 $(document).on("change", "input[type=file]", function(){                            

for(var i = 0; i < this.files.length; i++){  

    total = total + this.files[i].size; 

}

   if(total>250*1024){

alert("Total size too big: " + total);
   $(this).replaceWith('<input type="file">');
    return false;
   }