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要动态创建,不然就直接看到加载过程了