用于检查多个文件的总大小的简单javascript循环 [英] Simple javascript loop for checking total size of multiple file

查看:86
本文介绍了用于检查多个文件的总大小的简单javascript循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将此代码实现为20个文件的循环?他们将拥有id =myFile1,myFile2等。

 < script type =text / javascript> 
var myFile = document.getElementById('myFile');
myFile.addEventListener('change',function(){
alert(this.files [0] .size);
});
< / script>

我的第一个想法是做20个脚本,但我真的不认为这将是一个很好的解决方案,我真的更喜欢干净的代码。



我试过这个...但由于某种原因无效 - 第二个文件报告NaN而不是文件大小(以字节为单位) 。

 < script type =text / javascript> 

var myFile = document.getElementById('myFile');
myFile.addEventListener('change',function(){
var totalSize = this.files [0] .size;
alert(totalSize);
});

< / script>

< script type =text / javascript>

var myFile1 = document.getElementById('myFile1');

myFile1.addEventListener('change',function(){
var totalSize = totalSize + this.files [0] .size;
alert(totalSize);
});

< / script>

我还想实现一个IF条件,只有当totalSize大于7 MB时才会发出警报,这意味着我需要 totalSize /(1024 * 1024) - 这很容易,但不是循环。



<你能帮我建一个可以计算所有文件的totalSize的工作循环吗? myFile的ID是输入类型=文件元素。

解决方案

尝试并使用以下逻辑:

 < script type =text / javascript> 
var totalSize = 0;
function checkSize(){
totalSize = totalSize + this.files [0] .size;
alert(totalSize); //写逻辑来检查大小验证等。这里
}
for(var i = 1; i< = 20; i ++)
{
var myFile = document.getElementById( 'MYFILE' + I);
myFile.addEventListener('change',checkSize);
}
< / script>


How can I implement this code into a loop for 20 files? They will have id="myFile1", "myFile2" etc.

<script type="text/javascript">
var myFile = document.getElementById('myFile'); 
myFile.addEventListener('change', function() {
  alert(this.files[0].size);   
});
</script>

My first idea was to do 20 scripts, but I don' really think that it would be good solution, I really prefer clean code.

I tried this... but doesn't work for some reason - the second file reports "NaN" instead of file size in bytes.

<script type="text/javascript">

var myFile = document.getElementById('myFile'); 
myFile.addEventListener('change', function() {
  var totalSize = this.files[0].size;
  alert(totalSize); 
});

</script>

<script type="text/javascript">

var myFile1 = document.getElementById('myFile1'); 

myFile1.addEventListener('change', function() {
  var totalSize = totalSize + this.files[0].size;
  alert(totalSize); 
});

</script>

I would also like to implement an IF conditional that would alert only if the totalSize were bigger than 7 MB, that means that I need the totalSize/(1024*1024) - easy to do, but not the loop .

Could you please help me building a working loop that would count the totalSize of all the files? myFile is an ID of input type="file" element.

解决方案

Try and use following logic:

<script type="text/javascript">
 var totalSize=0;
 function checkSize() {
  totalSize = totalSize + this.files[0].size;
  alert(totalSize); //write logic to check size validation etc. here
 }
 for(var i=1;i<=20;i++)
 {
  var myFile = document.getElementById('myFile'+i); 
  myFile.addEventListener('change',checkSize);
 }
</script>

这篇关于用于检查多个文件的总大小的简单javascript循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆