File

L’interface File fournit des informations sur des fichiers et permet au code JavaScript d’une une page web d’accéder à leurs contenus.

Les objets File sont généralements obtenus à partir de :

  • l’objet FileList retourné lorsque qu’un utilisateur ou une utilisatrice sélectionne des fichiers grâce à un élément <input> ;
  • l’objet DataTransfer d’une opération de glisser-déposer ;
  • l’API mozGetAsFile() de l’élément HTMLCanvasElement.

Dans Gecko, le code privilégié peut créer des objets File représentant tout fichier local sans nécessiter une interaction de l’utilisateur ou de l’utilisatrice (voir Notes d’implémentation pour plus d’informations.)

Un objet File est un genre spécifique de Blob, et peut être utilisé dans tout contexte où un blob peut l’être. En particulier, FileReader, URL.createObjectURL(), createImageBitmap(), et XMLHttpRequest.send() acceptent indifféremment des Blobs et des Files.

Voir Utiliser des fichiers à partir d'applications web pour plus d’informations et des exemples.

Constructeur

File()
Renvoie un File nouvellement construit.

Propriétés

File.lastModified Lecture seule
Renvoie le temps de dernière modification du fichier, exprimé en millisecondes écoulées depuis l’ère UNIX (1er janvier 1970 à minuit).
File.lastModifiedDate Lecture seule
Renvoie la Date de dernière modification du fichier.
File.name Lecture seule
Renvoie le nom du fichier.
File.webkitRelativePath Lecture seule
Renvoie le chemin auquel l’URL du File est relative.

File implémente Blob, et ainsi possède les propriétés suivantes :

File.size Lecture seule
Renvoie la taille du fichier en octets.
File.type Lecture seule
Renvoie le type MIMEdu fichier.

Méthodes

L’interface File ne définit aucune méthode, mais hérite des méthodes de l’interface Blob :

Blob.slice([start[, end[, contentType]]])
Renvoie un nouvel objet Blob contenant les données du blob source comprises dans l’intervalle d’octets spécifié.
Blob.stream()
Transforme le File en un ReadableStream pouvant être utilisé pour lire le contenu du File.
Blob.text()
Transforme le File en un flux (stream) et le lit en entier. Renvoie une promesse qui se résoud en une USVString (texte).
Blob.arrayBuffer()
Transforme le File en un flux (stream) et le lit en entier. Retourne une promesse qui se résoud en un ArrayBuffer.

Spécifications

Spécification Statut Commentaire
File API Version de travail Définition initiale.

Compatibilité des navigateurs

BCD tables only load in the browser

Notes d’implémentation

  • Dans Gecko, vous pouvez utiliser API depuis du code chrome. Voir Using the DOM File API in chrome code pour plus de détails. Pour l’utiliser depuis du code chrome, JSM, ou portée Bootstrap, vous devez l’importer en utilisant Cu.importGlobalProperties(['File']);
  • À partir de Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), le code privilégié (par exemple au sein d’une extension) peut passer un objet nsIFile au constructeur DOM File pour spécifier le fichier à référencer.
  • À partir de Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), vous pouvez utiliser new File pour créer des objets File depuis des composants XPCOM au lieu de devoir instancier les objets nsIDOMFile directement. Contrairement à Blob, le constructeur prend le nom de fichier comme second argument. Le nom de fichier peut être une chaîne quelconque.
    new File(
      Array parts,
      String filename,
      BlobPropertyBag properties
    );
  • Les propriétés et méthodes non standard suivantes ont été retirées de Gecko 7 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) : File.fileName, File.fileSize, File.getAsBinary(), File.getAsDataURL(), File.getAsText(string encoding) (bug 661876). Les propriétés standard File.name, Blob.size, et les méthodes de FileReader devraient être utilisées à la place.

Voir aussi