File

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

L'interface File fournit des informations sur des fichiers et permet au code JavaScript d'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.

Blob File

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 Obsolète

Renvoie la Date de dernière modification du fichier.

File.name Lecture seule

Renvoie le nom du fichier.

File.webkitRelativePath Lecture seule Non standard

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

Specification
File API
# file-section

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, 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, 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
);

Voir aussi