jQuery技术

Jquery统计表单文件总大小

字号+ 作者:H5之家 来源:H5之家 2017-10-14 15:34 我要评论( )

所有的代码总是有寿命的,尤其是前端使用struts2上传文件的时候后台设置了maxFileSize,为了用户体验,我们需要在前端判断待上传文件的大

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

使用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" enctype="multipart/form-data"> <p>文件上传最大值为 <span>100</span>M</p> 欢迎登录: <s:property value="%{#session.student.nickName}"/><br> <div>上传作业: <input onchange="showAddBtn()" type="file"></div> <div> <!--添加新文件--> </div> <button type="button" hidden="hidden">再上传一个</button> <!--选择文件名称上传--> <!--判断文件大小,重复上传同一个文件,一次上传多个重复文件--> <br> <s:fielderror/> <input type="submit" value="submit"> </form>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【求助】在html中引入本地jquery.js文件无效

    【求助】在html中引入本地jquery.js文件无效

    2017-09-16 16:59

  • HTML表单转JSON:jquery.serializeJSON

    HTML表单转JSON:jquery.serializeJSON

    2017-09-12 14:18

  • jQuery formValidator表单验证

    jQuery formValidator表单验证

    2017-09-09 08:00

  • 使用jQuery动态加载js脚本文件的方法

    使用jQuery动态加载js脚本文件的方法

    2017-09-05 10:04

网友点评