FormData实现多图片上传的问题,(FormData.get('file[]')取到的files一样。

HTML代码

 <div class="z_file">
      <input type="file" name="imgfile" id="file" value="" accept="image/*" multiple="true" onchange="imgChange('z_photo','z_file');">
  </div>

js代码:

var fileList = document.getElementById("file").files;
alert(fileList.length)
var ossData = new FormData();
for (var i = 0; i < fileList.length; i++) {
    ossData.append("file[]", fileList[i])
    console.log(ossData.get('file[]'));
   
}

结果:
alert出来的长度正确,但是输出的files是一样的,如图

clipboard.png

求教各路大神,在此谢过。

阅读 3.5k
3 个回答

get('file[]')是只能获取key为file[]的第一个值,也就是你一直获取的是第一个img,你用getAll('file[]')试试

新手上路,请多包涵

用下标创建设置key名字,再传一个length也可以

这个相当于你把fileList中的内容都放入了同一个变量当中,变量引用指向的永远是第一个位置。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题