jquery获取file表单选择文件的路径、名字、大小、类型

一、问题

在使用file表单时想知道选择的文件的路径、名字、大小、类型?

二、知识点

1.input表单会触发change事件

2.获取路径   触发这个事件的对象调用val()函数

3.文件名  触发事件后会有一个事件对象e.currentTarget.files[0].name

4.文件大小   e.currentTarget.files[0].size     字节

5.文件类型   e.currentTarget.files[0].type

三、测试代码

<body>
  <p class="inp_file_name">未选择</p>
  <input type="file" class="inp_file">
  <button class="cancel_file_but">清除选择的文件</button>
</body>
<script src="./js/jquery-3.3.1.js"></script>
<script>
  $('.inp_file').change(function(e){
    // console.log($(this).val());//val()获取到的是完整的文件路径值;C:\fakepath\js-dom.png
    console.log(e)
    /*
    简单的获取选择文件的名字
    currentTarget:获取到的是绑定事件的对象
    e.currentTarget.files 是一个数组,如果支持多个文件,则需要遍历
    */
    var fileMsg = e.currentTarget.files;
    var fileName = fileMsg[0].name;
    console.log(fileName);//js-dom.png
    //大小 字节
    var fileSize = fileMsg[0].size;
    console.log(fileSize);//350061
    //类型
    var fileType = fileMsg[0].type;
    console.log(fileType);//image/png
    // 判断文件类型
    var type=(fileType.substr(fileType.lastIndexOf("."))).toLowerCase();
    if(type!=".jpg"&&type!=".gif"&&type!=".jpeg"&& type!=".png"){
      alert("您上传图片的类型不符合(.jpg|.jpeg|.gif|.png)!");
       return false;
    }
    $('.inp_file_name').text(fileName)
  })
  $('.cancel_file_but').click(function(){
    $('.inp_file').val(null);
  })
</script>

四、效果

未选前

选择后

若有不足请多多指教!希望给您带来帮助!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • jQuery获取file控件中图片的宽高与大小

    问题 如何判断input file表单里上传的图片的宽高和大小呢? 解决方案 这个时候图片还没真正上传,也不是在页面上展示,不能使用$("#id").width(),$("#id").height()这种方式. 在Stack Overflow找到一个方法获取input file图片文件的宽高: var _URL = window.URL || window.webkitURL; $("#file").change(function (e) { v

  • jQuery插件ajaxFileUpload异步上传文件

    ajaxFileUpload.js 很多同名的,因为做出来一个很容易. 我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http://xiazai.jb51.net/201610/yuanma/ajaxfileupload(jb51.net).rar AjaxFileUpload.js并不是一个很出名的插件,只是别人写好的放出来供大家用,原理都是创建隐藏的表单和iframe然后用JS去提交,获得返回值. 当初做了个异步上传的功能

  • jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】

    //放于上传前 function ajaxLoading(){ $("<div class=\"datagrid-mask\"></div>").css({display:"block",width:"100%",height:$(window).height()}).appendTo("body"); $("<div class=\"datagrid-ma

  • JQuery fileupload插件实现文件上传功能

    道理相通,我简单分享下在.net MVC下的实装. 1.制作Model类 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace RCRS.WebApp.LG.EM.Models { //---------------------------------------------------------------- /// <summary> /// Impor

  • Asp.net MVC中使用JQuery插件ajaxFileUpload上传文件

    0 ajaxFileUpload简介 ajaxFileUpload插件是一个非常简单的基于Jquery的异步上传文件的插件,使用过程中发现很多与这个同名的,基于原始版本基础之上修改过的插件,文件版本比较多,我把我自己使用的ajaxFileUpload文件上传到博客园上了,想要使用的朋友可以下载:http://xiazai.jb51.net/201611/yuanma/ajaxfileupload(jb51.net).rar. 整个插件源码不到200行,实现非常简单,大致原理就是通过js动态创建隐

  • jQuery插件ajaxFileUpload使用详解

    ajaxFileUpload.js 很多同名的,因为做出来一个很容易. 我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http://xiazai.jb51.net/201701/yuanma/ajaxfileupload(jb51.net).rar AjaxFileUpload.js并不是一个很出名的插件,只是别人写好的放出来供大家用,原理都是创建隐藏的表单和iframe然后用JS去提交,获得返回值. 当初做了个异步上传的功能

  • jquery-file-upload 文件上传带进度条效果

    jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消.删除,上传前缩略图预览.列表显示图片大小,支持上传进度条显示:支持各种动态语言开发的服务器端. 效果图如下所示: html 部分 <div style="line-height:34px;margin-top:20px;"> <label style="float: left;font-size:14px">上传文件:</label> &l

  • 从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别

    背景: 在清空input file标签选中值时,分别用了以下方法,发现有的对有的错: [√]$("#file")[0].value = ""; [√]$("#file")[0].value = null; [×]$("#file").attr("value",""); [×]$("#file").attr("value",null); [√]$(&

  • jQuery插件ajaxfileupload.js实现上传文件

    AjaxUpLoad.js的使用实现无刷新文件上传,如图 1.创建页面并编写HTML 上传文档: <div class="uploadFile"> <span id="doc"><input type="text" disabled="disabled" /></span> <input type="hidden" id="hidFileNam

  • jQuery File Upload文件上传插件使用详解

    jQuery File Upload 是一个Jquery文件上传组件,支持多文件上传.取消.删除,上传前缩略图预览.列表显示图片大小,支持上传进度条显示:支持各种动态语言开发的服务器端. 官网链接:https://github.com/blueimp/jQuery-File-Upload/wiki 特点:拖放支持:上传进度条:图像预览:可定制和可扩展的:兼容任何服务器端应用平台(PHP, Python, Ruby on Rails, Java, Node.js, Go etc.). 使用方法:

随机推荐