javascript - 使用 javascript 上传之前获取文件大小

标签 javascript

这是 html 代码:

<form method="POST" action="http://my-site.com/send-file" accept-charset="UTF-8" enctype="multipart/form-data">
      <input name="_token" type="hidden" value="6Yav0H6Cyp62Rhr6uAAEefzL7Yq0BqIHfhuYwzy4"> 
      <label for="file">File</label>
      <input id="iefile" name="img" type="file">
      <input type="submit" value="send">
</form>

这是js代码:

 $('form').submit(function(e) { // capture submit
        e.preventDefault();
        size=$(this).find("input:file").files[0].size ;
        alert(size);
}

但在控制台中显示此错误:

Uncaught TypeError: Cannot read property '0' of undefined

最佳答案

要检索 DOM 元素的属性,您应该使用 .prop():

$(this).find("input:file").prop('files')[0].size

这是因为 $(this).find() 返回一个 jQuery 对象,而不是直接返回 DOM 元素。或者,您可以将结果视为数组并使用第一个元素,如下所示:

$(this).find("input:file")[0].files[0].size

mentioned在评论中,您还应该确保首先选择一个文件:

var f = $(this).find("input:file")[0].files[0];
if (f) {
    // do something with f.size
}

关于javascript - 使用 javascript 上传之前获取文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27873397/

相关文章:

javascript - Google Analytics 获取自定义报告

javascript - 我想将文本与我的动态复选框匹配

javascript - AngularJS 后处理链接

javascript - SPA的Javascript库

javascript - HighCharts 中 xAxis 上具有负值和类别的柱形图

Javascript加载另一个js文件

javascript - 尽管上传成功,但在 aws s3 中找不到图像

javascript - 为什么 ScrollTop 位置在移动 Safari 上不起作用?

javascript - 使用 jqxGrid 渲染作为对象的单元格值?

javascript - JavaScript 在浏览器控制台上运行,但在我放入开发人员控制台时却不行