如何在上传文件之前使用ajaxSubmit获取文件大小

时间:2017-10-18 01:10:58

标签: javascript jquery

在我的项目中,我使用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>

2 个答案:

答案 0 :(得分:2)

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

这是一个有趣的jQuery警告。与普通的JavaScript一样,JQuery不会返回dom的所有属性。并且jQuery不返回file属性。您可以使用以下代码访问jQuery的第一个匹配的dom元素:

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

答案 1 :(得分:1)

尝试以下代码

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

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