2017-10-18 100 views
1

在我的项目中,我使用ajaxSubmit来上传文件。如何在上传文件之前使用ajaxSubmit获取文件大小

文件大小有限。所以在发送文件之前,我想立即检查上传文件的大小。

当我点击文件按钮时,alert("test")工作成功。但alert(ufile.size)工程失败。

我试过$('#fId').files[0]$('#fulId').files[0],但它们都失败了。

这里是我的js代码:

$(function() { 
$("#fulId").wrap("<form id='fId' action='action.php' method='post' enctype='multipart/form-data'></form>"); 
$("#fulId").change(function(){ 
    alert("test"); 
    $("#fId").ajaxSubmit({ 
     dataType:'json', 
     beforeSend: function(){ 
     //var ufile=$('#fId').files[0]; 
     var ufile=$('#fulId').files[0]; 
     alert(ufile.size); 
     }, 
     uploadProgress: function(){}, 
     success: function(){}, 
     error:function(){} 
    }); 
    }); 

下面是HTML代码:

<div class="attFile"> 
    <input type="file" id="fulId" name="mypic"> 
</div> 
+0

的可能的复制[如何检查文件输入大小与jQuery的?](https://stackoverflow.com/questions/1601455/how-to-check-file-input-size-with-jquery) –

回答

2

在你改变功能,使用alert(this.files[0].size);

这是jQuery的一个有趣的警告。 JQuery不会返回dom的所有属性,就像普通的JavaScript一样。 jQuery不会返回文件属性。你可以使用下面的代码来访问你的jQuery的第一个匹配的DOM元素:

$("#yourFileInput")[0].files[0].size; 
1

尝试下面的代码

$('#myUP').bind('change', function() { 
 
    
 
    alert("File size in bytes "+ this.files[0].size); 
 

 
});
<input type="file" id="myUP" /><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

相关问题