通过jquery获取上传文件名称、类型和大小的实现代码


Posted in jQuery onApril 19, 2018

在文件上传到服务器之前,我们可以通过jquery来获取上传文件的名称,类型和尺寸大小。

通常情况下,当用户通过<input type='file'>标签来上传文件时,我们可以看到上传文件的名称。HTML5 File API为我们提供了一种安全的方式,让我们在客户端访问计算机中的文件,并更好的对这些文件执行操作。

支持File API的浏览器有IE10+,Firefox4+,Safari5.0.5+,Opera11.1+和Chrome。

File API在表单的文件输入字段的基础上,又添加了一些直接访问文件信息的接口。HTML5在DOM中为文件输入元素添加了一个files集合。通过文件输入字段选择了一个或多个文件时,files集合中包含一组File对象,每个File对象对应着一个文件。每个文件都有下列的只读属性:

  • name:本地文件系统中的文件名。
  • size:文件的字节数。
  • type:文件的MIME类型。
  • lastModifiedDate:文件上一次被修改的时间。

通过这个files接口,我们就可以在jquery中获取上传文件的名称,类型和尺寸大小。通过下面的demo来体验一下效果。

1、通过“选择文件”按钮来选择要上传的文件,可以选择多个文件。

2、选择文件后点击“显示上传文件的详细信息”按钮来查看文件的详细信息。

要同时上传多个文件,需要在文件上传标签中添加multiple属性。上面demo的HTML结构如下:

<input id="fUpload" multiple type="file" /><br />
<ul id="ulList">
</ul>
<input id="btnShow" type="button" value="显示上传文件的详细详细" />

在jquery代码中,首先检测被选择文件的数量,然后通过一个循环来分别获取每个文件的详细信息。完整的jquery代码如下:

$("#btnShow").on('click', function () {
  $("#ulList").empty();
  var fp = $("#fUpload");
  var lg = fp[0].files.length; // get length
  var items = fp[0].files;
  var fragment = "";
   
  if (lg > 0) {
    for (var i = 0; i < lg; i++) {
      var fileName = items[i].name; // get file name
      var fileSize = items[i].size; // get file size 
      var fileType = items[i].type; // get file type
 
      // append li to UL tag to display File info
      fragment += "<li>" + fileName + " (<b>" + fileSize + "</b> bytes) - Type :" + fileType + "</li>";
    }
 
    $("#ulList").append(fragment);
  }
});

这篇文章就介绍到这了,需要的朋友可以参考一下。

jQuery 相关文章推荐
jquery append与appendTo方法比较
May 24 jQuery
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
基于jQuery实现无缝轮播与左右点击效果
May 13 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
jquery实现烟花效果(面向对象)
Mar 10 jQuery
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 jQuery
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 #jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 #jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 #jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 #jQuery
jQuery实现使用sort方法对json数据排序的方法
Apr 17 #jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 #jQuery
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 #jQuery
You might like
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
python pandas生成时间列表
2019/06/29 Python
Django中的cookie和session
2019/08/27 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
keras打印loss对权重的导数方式
2020/06/10 Python
python3.7调试的实例方法
2020/07/21 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
简历的个人自我评价范文
2014/01/03 职场文书
考博导师推荐信范文
2015/03/27 职场文书
公司开会通知
2015/04/20 职场文书
2015年领班工作总结
2015/04/29 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
Redis实现短信验证码登录的示例代码
2022/06/14 Redis