2015-01-10 79 views
2

之前,這是HTML代碼:獲取文件大小上載與JavaScript

<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 

回答

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 
} 
+0

謝謝非常多 – adib16

+2

希望他們在提交之前選擇了一個文件,或者這是一個錯誤。 – epascarello