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

前端如何交换input file中的files中的文件对象的位置?

前端如何交换input file中的files中的文件对象的位置?

精慕HU 2019-01-30 21:19:52
1、input file多文件上传的时候选中了多个文件,现在想把后缀名为.abc的文件在上传前放在这个上传文件数组的files[0]的位置。2、比如我想把FileList中的FileList[5]中的内容置换到FileList[0];3、我试了我想到的两种方法都不行:第一种是设置一个temp中间值:  for (var i = 0; i < fileList.length; i++) {    if (fileList[i].name.indexOf('.obj') !== -1) {      var tempFile = fileList[0];      fileList[0] = fileList[i];      fileList[i] = tempFile;    }  }不支持这样交换:第二种是交换value值,可是这个对象并没有value值属性,前端直接报错:  for (var i = 0; i < fileList.length; i++) {    if (fileList[i].name.indexOf('.obj') !== -1) {      var tempFile = fileList[0].val();      fileList[0].val(fileList[i].val());      fileList[i].val(tempFile);    }  }  应该怎么实现呢
查看完整描述

1 回答

?
缥缈止盈

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

FileList是只读属性,不可以修改的,你要改的话,新建一个数组,在change事件里把每个FileList push进去,然后进行数组操作,调换位置


var filearr = [];

var myfile = document.getElementById('file');



myfile.onchange = function(){

    var files = this.files; 

    for(var i = 0;i<files.length;i++){                

         filearr.push(files[i]);

    }

}


查看完整回答
反对 回复 2019-01-31
  • 1 回答
  • 0 关注
  • 1453 浏览
慕课专栏
更多

添加回答

举报

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