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

时间:2015-01-10 06:08:47

标签: 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

1 个答案:

答案 0 :(得分:3)

要检索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
}