用JQuery与FormData上传文件

用JQuery与FormData上传文件主要介绍如何用 JQuery 与 FormData 如何上传一个或者多个文件 1 首先利用 input 的 type 属性中的 file 选择上传文件 如果要上传多个文件在 input 属性中添加 multiple 属性 这个属性类似于 checkbox 可以对文件进行多选 如下 inputtype file id file multiple buttonid btnSend 上传文件 2 引入 JQ 文件后 给按钮设置 buttonid btnSend inputtype file id file multiple

主要介绍如何用JQuery与FormData如何上传一个或者多个文件。

1.首先利用input的type属性中的file选择上传文件,如果要上传多个文件在input属性中添加multiple属性,这个属性类似于checkbox可以对文件进行多选。

如下:

 

2.引入JQ文件后,给按钮设置点击事件,当我们点击的时候对文件进行上传。

        第一步:获取文件并将其转化为dom对象,获取files属性

$(function(){ $('#btnSend').on('click',function(){ //第一步:获取文件以及里面的files属性 var myFile = $('#file')[0].files }) })

3.做一个判断是否选择了文件(总得有文件才能上传吧QAQ)

获取到的files对象里有一个属性length,代表了选择文件的个数。当length小于等于0时弹框提示。

 $(function(){ $('#btnSend').on('click',function(){ //获取文件以及里面的files属性 var myFile = $('#file')[0].files //判断是否选择了文件 if(myFile.length<=0) return alert('请选择文件!') }) }) 

4.根据上传文件数量循环创建formdata对象。

 $(function(){ $('#btnSend').on('click',function(){ //获取文件以及里面的files属性 var myFile = $('#file')[0].files //判断是否选择了文件 if(myFile.length<=0) return alert('请选择文件!') //循环创建formdata对象 for(var i = 0;i 
  

5.用formData里的append方法,把文件信息添加到formData里面

 $(function(){ $('#btnSend').on('click',function(){ //获取文件以及里面的files属性 var myFile = $('#file')[0].files //判断是否选择了文件 if(myFile.length<=0) return alert('请选择文件!') //循环创建formdata对象 for(var i = 0;i 
  

这个avatar只是取个名字一般叫这个,头像的意思 同阿凡达QAQ

6.发送请求,为了后期使用方便我们可以把发送请求封装成一个方法。

//封装请求函数 function sendFile(formData){ $.ajax({ // 请求路径 url:'http://www.liulongbin.top:3006/api/upload/avatar', // 请求类型 type:'post', // 上传的数据 data:formData, // 默认为true,上传的数据以字符串形式上传,当上传文件时不需要转换为字符串,所以改为false processData:false, // 表示前端发送数据的格式 // 默认是以字符串的形式 如 id=2019 & password= // 无法传递复杂数据,所以改为false contentType:false, // 请求成功时执行的函数 success:function(res){ // 对状态码进行判断 if(res.status==200){ // 我这里上传的是图片,所以做了一个图片预览,将图片展示到页面上 // 创建图片标签 var img = $('用JQuery与FormData上传文件') // 根据返回的数据设置图片地址 img.attr('src','http://www.liulongbin.top:3006'+res.url) // 将图片添加到body 展示到页面上 $('body').append(img) } } }) }

       

调用请求方法:

$(function(){ $('#btnSend').on('click',function(){ //获取文件以及里面的files属性 var myFile = $('#file')[0].files //判断是否选择了文件 if(myFile.length<=0) return alert('请选择文件!') //循环创建formdata对象 for(var i = 0;i 
  

以上就完成了JQuery对文件的上传。

总体代码如下:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219434.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:33
下一篇 2026年3月17日 下午10:34


相关推荐

  • SpringBoot常见面试问题

    SpringBoot常见面试问题博客转载自:https://blog.csdn.net/ityouknow/article/details/96533522随着SpringBoot使用越来越广泛,SpringBoot已经成为Java程序员面试的知识点,很多同学对SpringBoot理解不是那么深刻,经常就会被几个连环跑给干趴下了!比如下面这一段的SpringBoot问答:问:你觉得S…

    2022年6月4日
    42
  • python 中os模块os.path.exists()含义

    python 中os模块os.path.exists()含义os即operatingsystem(操作系统),Python的os模块封装了常见的文件和目录操作。os.path模块主要用于文件的属性获取,exists是“存在”的意思,所以顾名思义,os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径。举个栗子:user.py为存在于当前目录的一个文件输入代码:importospath…

    2022年7月12日
    17
  • 吊炸天!74款APP完整源码!

    吊炸天!74款APP完整源码!吊炸天!74款APP完整源码!超级干货大集合!下面是所有APP的效果图展示,由于图片较多,加载较慢,为了方便阅读,您也可以点击阅读原文观看。WeChat高仿微信高仿微信,实现功能有:好友之间文字聊天,表情,视频通话,语音,语音电话,发送文件等。知乎专栏App第三方的app,引用作者的描述:“最近一直在利用空余时间开发一个完整的App,名字就叫“专栏”。开发这个App的…

    2022年4月26日
    43
  • 如何彻底删除卸载JDK?「建议收藏」

    如何彻底删除卸载JDK?「建议收藏」最近更新了jdk版本,当运行的时候出现错误couldnotopen’D:\jdk1.8.0_171\jre1.8.0_171\lib\amd64\jvm.cfg’主要是因为上个版本没有卸载干净和,jdk与jre安装的位置发生了冲突!解决jdk彻底删除的问题:1.在电脑的控制面板中卸载(基本的办法)。2.采用360安全卫士卸载,有风险(注册列表可能未删干净)3.在运行中…

    2022年6月25日
    55
  • kotlin的Delegates与lateinit对比

    kotlin的Delegates与lateinit对比首先 Thetwomodels andonepredat Delegates notNull apireference isbasedondel andlatercame LateInitiali Neithercover

    2026年3月19日
    2
  • 小米4开启太极·阳

    小米4开启太极·阳机型小米4有很多版本,手中手机后面的入网许可证写着的是TD-LTE,系统设置中的名称为:MI4LTE刷入开发版Rom小米4miui官网rom地址:小米4小米4-电信3G版/移动版/联通版小米4miuirom官方下载地址:miui_MI3WMI4W_8.9.13_8001b58f3b_6.0.zip按照官方刷机教程刷入开发版rom,刷入前记得双清。获取root权限刷完rom后,打开安全中心-应用管理-权限管理-root权限开启刷入第三方recovery…

    2022年6月4日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号