formdata对象

FormData 对象的作用

1.模拟HTML表单,相当于将HTML表单映射成表单对象,自动将表单对象中的数据拼接成请求参数的格式。
2.异步上传二进制文件。

FormData对象的基本使用

  1. 准备HTML表单
<form action="post" id="form">
        <input type="text" name="username"/>
        <input type="password" name="password"/>
        <input type="button" name="button"/>
 </form>

2.将HTML表单转化formData对象

var form = document.getElementById('form');
var formData = new FormData(form);

3.提交表单对象

xhr.send(formData);

FormData对象的实例方法

1.删除表单对象中属性的值

formData.delete('key');

2.获取表单对象中属性的值

formData.get('key');

3.设置表单对象中的属性的值

formData.set('key','value');

4.向表单对象中追加属性值

formData.append('key','values')

注意:set方法与append方法的区别是,在属性名已存在的情况下,set会覆盖已有键名的值,append会保留两个值。

FormData文件上传进度提示

客户端的核心代码:

file.onchange = function () {
            //文件上传过程中持续触发onprogress事件
            xhr.upload.onprogress = function (ev) {
                //当上传文件大小/文件总大小 再将结果转换为百分数
                //将结果赋值给进度条的宽度属性
                bar.style.width = (ev.loaded / ev.total) * 100 + '&';
            }
        }

服务端实现文件上传的路由

import formidable from 'Formidable'
//实现文件上传的路由
app.post('/upload',(req,res) => {
    //创建formidable表单解析对象
    const form = new formidable.IncomingForm();
    //设置客户端上传文件的存储路径
    form.uploadDir = path.jonn(__dirname,'public','upload');
    //保留上传文件的后缀名字
    form.keepExtensions = true;
    //解析客服端传递过来的fromdata对象
    form.parse(req,(error,fields,files) => {
        //将客户端传递过来的文件地址响应到客户端
        res.send(files.attrName.path);
    });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值