编辑、更新
如何删除上传变量中的特定项目?
如果预期结果是文件对象数组,将调整从原始files对象拼接数组项的方法- 并将拼接数组作为上传发送 - 而不是尝试从原始files对象“删除”项目并仍然上传原始files对象。
FileList对象没有.splice()方法。尝试利用.slice(),.call()转换files为Array,然后.splice()在File对象数组上调用方法,例如;
// `_files` : `File` object items from original `files` `FileList`
// call `.splice()` on items that would be uploaded ,
// upload `_files` array - _not_ original `files` `FileList` object
// e.g.; `_files`:`File` objects to _keep_ not "delete" from `files`
var idstokeep = [0, 2]; // splice , keep first `2` files 
var _files = Array.prototype.slice.call(files).splice(idstokeep[0], idstokeep[1]);
看看Array.prototype.slice.call() 是如何工作的? 
或者,利用 
物品() 
返回一个 File 对象,表示文件列表中指定索引处的文件。
在特定index范围内返回文件FileList
  var files = e.target.files;
  // return `file` at `index` `1`
  var firstFile = files.item(1);
var upload = document.getElementById("file1");
upload.onchange = function(e) {
  var files = e.target.files;
  // https://developer.mozilla.org/en-US/docs/Web/API/FileList#item
  var firstFile = files.item(1); 
  var idstokeep = [0, 2]; // keep first `2` files from `multiple` selection
  var _files = Array.prototype.slice.call(files).splice(idstokeep[0], idstokeep[1]);
  console.log(files, files.length         
              , _files, _files.length
              , firstFile);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<input class="file" id="file1" name="uploadedimages[]" type='file' multiple/>