Jquery统计表单文件总大小

所有的代码总是有寿命的,尤其是前端

使用struts2上传文件的时候后台设置了maxFileSize,为了用户体验,我们需要在前端判断待上传文件的大小。如果超出设置的最大值,我们简单alert一下,提醒用户重新上传。为此,一个新的技术问题出现了:如何使用js或者jq统计表单文件的大小?
在百度上搜索了许多方法,资料大都是比较久远的时代的代码。在自己机器上测试的时候却是经常性的行不通,控制台频繁报错:undefined function
时代在进步,技术在发展,一些老旧的代码终究还是要被淘汰。
这里提供一个使用jq统计表单文件总大小的方法:在谷歌浏览器上测试通过


     /**
      * 获取文件的总大小
      */
      $("#submit").click(function () {
          var size = $("#maxFileSize").text();
          var actualSize =0;
          $("input[type=file]").each(function () {
              actualSize += $(this)[0].files[0].size
          });
          if (actualSize/1024/1024>size){
              alert("当前文件总大小:"+actualSize+" 已超出限制");
              return false;
          }else{
              alert("当前文件总大小:"+actualSize);
              alert("准备提交");
          }
      })

简单解释一下:
获取文件总大小的大体思路是这样的:
在提交表单前,先遍历file控件,获取每个file控件的引用,使用$(this)[0].files[0].size方法获取当前文件的字节数。所以最后与设置的文件最大值比较的时候需要转换为MB。

前端界面代码如下:

 <form action="mulFileUpload.action" method="post" id="form" enctype="multipart/form-data">
      <p>文件上传最大值为 <span id="maxFileSize">100</span>M</p>
      欢迎登录: <s:property value="%{#session.student.nickName}"/><br>
      <div class="upload-files">上传作业: <input id="first-file" onchange="showAddBtn()" type="file" name="upload"></div>
      <div class="add-upload-files">
          <!--添加新文件-->
      </div>
      <button class="add-file" type="button" hidden="hidden">再上传一个</button>
      <!--选择文件名称上传-->
      <!--判断文件大小,重复上传同一个文件,一次上传多个重复文件-->
      <br>
      <s:fielderror name="errorTips"/>
      <input type="submit" id="submit" value="submit">
  </form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值