[JavaScript] FormData上传图片的使用

一、问题:FormData上传文件,后端接口一次只接收一张(死亡微笑),所以前端需要遍历 FileList 中的 File对象装进FormData中, 一张一张上传,这里需要了解 FormData

1.1 如果使用FormData.append的话,后端应该是默认获取第一个file对象,所以需要删除前面循环装进formData中的file对象,假如我选择了2张图片,这时 formData 中 键key为 file 里面会有2个file对象

var formData = new FormData(); 
formData.append("file", newFile);
console.log(formData.getAll('file'))

在这里插入图片描述
所以要用formData.delete(‘file’) 删掉前面循环进去的 键key为 file的数据再append新的进去

var formData = new FormData();
formData.delete('file');  
formData.append("file", newFile);
console.log(formData.getAll('file'))

1.2 推荐使用FormData.set()

formData.set('file',newFile)

二、FormData中的方法

2.1 方法详解

//将新值附加到FormData对象内的现有键上,或者如果该键不存在,则添加该键。

FormData.append() 

//从FormData对象中删除键/值对。

FormData.delete()  

//返回一个迭代器,允许遍历此对象中包含的所有键/值对。

FormData.entries() 

//从FormData对象中返回与给定键关联的第一个值。

FormData.get() 

//从FormData中返回与给定键关联的所有值的数组。

FormData.getAll() 

//返回一个布尔值,说明FormData对象是否包含某个键。

FormData.has()  

//返回一个迭代器,允许遍历此对象中包含的键/值对的所有键。

FormData.keys() 

//为FormData对象中的现有键设置新值,或者如果键/值不存在,则添加该键/值。

FormData.set()  

//返回允许遍历此对象中包含的所有值的迭代器。

FormData.values() 

2.2 FormData 怎么打印?

我们在使用append方法后,在控制台里只能看到FormData原型;

但是对应的键值对已经添加到表单里了,存储的数据并不是以对象属性的方式体现。
所以直接打印是看不到的,因为外界访问不到。

想获取可尝试以下两种方法:

//第一种

 for (var value of formData.values()) {
    console.log(value);
 }

//第二种

for (var [a, b] of formData.entries()) {
    console.log(a, b);
 } 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值