Ajax-03(formData)

本文详细介绍了如何使用Ajax通过FormData对象上传文件,包括设置表单数据、二进制文件上传、监听上传进度及实现即时预览功能。在上传过程中,强调了formData的实例方法,如设置和删除属性值,并提到了服务器端如何接收和处理上传的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FormData

在这里插入图片描述
在这里插入图片描述
一定要有name属性

提交表单对象
xhr.send(formData);
所以要用post方法
新建一个普通的表单,不需要action,按钮类型也不用是submit,submit是会自动提交的
在这里插入图片描述
把普通表单转换成表单对象,括号里传入想变成表单对象的表单
在这里插入图片描述
上面构造函数写错了,第一个字母要大写
这是点击按钮,就把普通表单转换成了表单对象,这是就不用获取,拼接等麻烦的步骤了
在这里插入图片描述

之前一直用body,parser接受客户端向服务器端传递的post参数
但是不能请求客户端传递过来的formdata对象
所以要用formidable
下载,引入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FormData对象的实例方法

1、获取表单对象中属性的值
formData.get('key')
key是username
在这里插入图片描述
在这里插入图片描述

2、设置表单中属性的值
formData.set('key','value')
应用在二次处理上,
在这里插入图片描述
在这里插入图片描述
存在的会被替换,不存在的会被创建
在这里插入图片描述
在这里插入图片描述
3.删除表单对象中属性的值
formData.delete('key')

4、像表单对象中追加属性值
formData.append('key','value');

==set和append方法的区别是,在属性名已经存在的情况系啊,set会覆盖已有键名的值,append保留两个值

但是如果不经过特殊设置,默认接收 的是最后一个
在这里插入图片描述

在这里插入图片描述

二进制文件上传

在这里插入图片描述
上传的文件被存在了files属性中,默认是一个集合,只能选择一个,【0】
在这里插入图片描述
客户端发送:
在这里插入图片描述
服务器接收
在这里插入图片描述
保存后缀名
在这里插入图片描述

上传进度

在这里插入图片描述
事件对象存储了上传文件的总大小以及已经上传文件的大小
打印一下这个对象
注意loaded total属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

即时预览功能

把图片上传到服务器以后,服务器通常会把图片地址作为响应数据传到客户端,客户端可以从响应数据中获取图片地址,然后把图片显示在网页中
在这里插入图片描述
传递过来的是硬盘地址不可以直接用,所以要分割字符串
在这里插入图片描述
但一般这样写
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
img要动态创建,不然就直接看到加载过程了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值