尝试将至少两个文件输入大小一起添加。可能有两个以上但总是至少一个,如果超过15MB则停止表格。现在让我获取文件大小,并将它们附加到div进行检查,但附加只是将每个大小添加到最后。尝试了html,只是替换了node元素。有谁看到我做错了什么?
<div id="fileAmt"></div>
<input type="file" name="images[]" id="i1" class="imageup" />
<input type="file" name="images[]" id="i2" class="imageup" />
$('input[type="file"]').each(function(i) {
// Get an array of the files for this input
$(this).change(function () {
var files = $(this).get(0).files;
// Loop through files
for (var j = 0; file = files[j]; j++) {
// File size, in bytes
var size = file.size;
$('#fileAmt').html(size);
}
});
});
答案 0 :(得分:1)
我为你做了updated fiddle。
这里发生的事情是,每次添加文件时我都会将文件大小计数重置为0,然后我将其完成并将其加总并保存到全局变量totalSize
。您缺少的部分是您每次在循环中为变量赋值,但是您从未对事物进行过总结。你说“嘿,现在价值是100.嘿,现在价值是200”。你没有将100和200加在一起。
这有意义吗?
//my global variable that I will add to, not replace.
window.totalSize = 0;
$('input[type="file"]').each(function(i) {
// Get an array of the files for this input
$(this).change(function () {
window.totalSize = 0;
var files = $(this).get(0).files;
// Loop through files
for (var j = 0; file = files[j]; j++) {
// File size, in bytes
window.totalSize += file.size; //Here is a key bit
$('#fileAmt').html(window.totalSize);
}
});
});
答案 1 :(得分:0)
您需要将大小放在循环之外并将其附加到其中。
$(this).change(function () {
var files = $(this).get(0).files;
var size = 0;
// Loop through files
for (var j = 0; file = files[j]; j++) {
// File size, in bytes
size += file.size;
}
$('#fileAmt').html(size);
});