为了账号安全,请及时绑定邮箱和手机立即绑定

FormData实现多文件上传的问题

FormData实现多文件上传的问题

青春有我 2018-11-14 17:18:55
虽然知道FormData可以多文件同时上传,但目前这次的需求不一样,需要每个图片附带一些用户的选择参数。比如。scope.FileList为file多选后的文件数组。如果按照常规多文件上传的话完全没问题。、但是目前的需求是每个图片有着不同的参数,我试过将参数直接丢到图片对象里 scope.FileList.forEach(function(e,index){    e.Imagestype = '新房'+index;    data.append('picture[]',e,'picture'+index);})或者将图片和参数丢到object里然后……scope.FileList.forEach(function(e,index){    var obj = new Object();    obj.type = 'test'    obj.image = e;    data.append('picture[]',JSON.stringify(obj),'test');})我承认脑洞有点大。但是我实在不知道如何能以JSON的格式上传文件。例如:[   {type:'户景图',Image:'file文件'},   {type:'户景图',Image:'file文件'},   {type:'户景图',Image:'file文件'},   {type:'户景图',Image:'file文件'},   {type:'户景图',Image:'file文件'},]貌似FromData只有一个append方法可以操作。那么常规的多文件上传是怎么一个思路呢?或者说这个需求压根就不合理呢?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

你这种思路不可行。

formdata是单纯的key-value结构,而文件只能在value这一层,不能再更深一层。

不过你可以通过在最后维护一个属性对象来把属性另外传上去。

例如,你的formdata是这样的结构:

{

    "image1": xxx.jpg,

    "image2": xxx2.jpg,

    "fileAttrs": {

        "image1": some attributes,

        "image2": some attributes

    }

}

当然,fileAttrs要转成JSON字符串。

查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 944 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信