什么是FileList对象以及如何使用它

514 阅读1分钟

找出什么是FileList对象以及如何使用它

当你有一个带有<input type="file" /> 元素的HTML表单时,当一个或多个文件被用户上传时,你将与一个FileList 对象交互。

这并不是唯一可以给你一个FileList 对象的地方。你在与拖放互动时也会得到一个。

坚持使用表单,默认的输入类型不允许上传多个文件。

你将检索到一个只有一个元素的FileList,你可以使用这个语法来检索它。

const input = document.querySelector('input')

input.addEventListener('change', e => {
  const fileList = input.files
  const theFile = fileList[0]
})

FileList 对象中选择任何元素都会得到一个 File对象。在这种情况下,我们只有一个,所以我们选择位置为0的项目。

你也可以使用item() 方法检索它,指定索引。

const input = document.querySelector('input')

input.addEventListener('change', e => {
  const fileList = input.files
  const theFile = fileList.item(0)
})

如果多个被启用,尽管使用multiple 属性 (<input type="file" multiple />),FileList将包含多个元素。

你可以通过查看FileListlength 属性来获得计数。

这个例子加载了上传的文件,并对其进行迭代以打印每个文件的名称。

<input type="file" multiple />
const input = document.querySelector('input')

input.addEventListener('change', e => {
  const files = input.files
  const filesCount = fileList.length

  for (let i = 0; i < files.length; i++) {
    const file = files[i]
    alert(file.name)
  }
})