FileList Web API

Description

Un objet FileList est renvoyé par la propriété files d’un élément HTML <input>.

Il permet d’accéder à la liste des fichiers sélectionnés via l’élément <input type=”file”>.

Cet objet peut également être utilisé pour les fichiers glissés-déposés dans du contenu web via l’API Drag & Drop (voir l’objet DataTransfer pour plus de détails).

Utiliser une liste de fichiers

Tous les éléments <input> possèdent un attribut files de type FileList qui permet d’accéder aux éléments de cette liste.

Ainsi, si le code HTML utilisé est:

<input id="fileItem" type="file">

On pourra utiliser la ligne suivant pour récupérer le premier fichier de la liste sous la forme d’un objet File:

var file = document.getElementById('fileItem').files[0]

Exemples

https://github.com/suzuki11109/vanilla-dnd

dropArea.addEventListener('drop', handleDrop, false);
function handleDrop(e) {
  let dt = e.dataTransfer;
  let files = dt.files;

  handleFiles(files);
}


function handleFiles(files) {
  ([...files]).forEach(uploadFile);
  ([...files]).forEach(previewFile);
}

function uploadFile(file) {
  console.log(`${file} ${file.name} ${file.size} ${file.type}`);
}

function previewFile(file) {
  let reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onloadend = function() {
    let img = document.createElement('img');
    img.src = reader.result;
    document.getElementById('gallery').appendChild(img);
  }
}