Javascript - 确定文件大小

标签 javascript jquery html

我在一个页面上有多个文件输入。这些是唯一定义的,我不能为此使用 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
});

谢谢

最佳答案

我不认为你可以这样做:document.getElementById(files[j]).size.size 属性在那里不存在。

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

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

我认为是否有 multiple="multiple" 并不重要。

请记住,您的代码中存在错误。 size 的初始值为 undefined 并且 undefined + 1234NaN(不是数字)

关于Javascript - 确定文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318099/

相关文章:

javascript - 使用 onchange 获取选择的值并添加行 ID 号

javascript - 如何在不使用 indexOf 方法的情况下定位具有特定内联样式的特定 dom css 类

javascript - jquery检测滚动后页面顶部的坐标

java - 导航到网页中的每个链接后,如何使用 selenium java 通过方法 =post 获取所有表单的列表

javascript - Internet Explorer 没有执行我的脚本

javascript - Firefox 与 contextmenu 事件同时触发 click 事件

javascript - 如何在 JS & CSS Minifier 中的 VSCode (Win10) 中启用保存缩小

javascript - 在另一个页面上克隆整个 div 容器

javascript - 在 ChartJS 散点图中显示图像而不是点

html - 如何显示带有两个不同大小/颜色边框的超链接图像?