aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/file/index.md
blob: d5d6b5b6d736710d49760970154ca7b787a77bca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
---
title: File
slug: Web/API/File
tags:
  - DOM
  - File
translation_of: Web/API/File
---
{{APIRef}}

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 {{domxref("FileList")}} retourné lorsque qu’un utilisateur ou une utilisatrice sélectionne des fichiers grâce à un élément {{HTMLElement("input")}} ;
- l’objet {{domxref("DataTransfer")}} d’une opération de glisser-déposer ;
- l’API `mozGetAsFile()` de l’élément {{domxref("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 {{anch("Notes d’implémentation")}} pour plus d’informations.)

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

Voir [Utiliser des fichiers à partir d'applications web](/fr/docs/Web/API/File/Using_files_from_web_applications) pour plus d’informations et des exemples.

{{InheritanceDiagram}}

## Constructeur

- {{domxref("File.File", "File()")}}
  - : Renvoie un `File` nouvellement construit.

## Propriétés

- {{domxref("File.lastModified")}} {{readonlyinline}}
  - : Renvoie le temps de dernière modification du fichier, exprimé en millisecondes écoulées depuis l’ère UNIX (1er janvier 1970 à minuit).
- {{domxref("File.lastModifiedDate")}} {{readonlyinline}} {{deprecated_inline}} {{gecko_minversion_inline("15.0")}}
  - : Renvoie la {{jsxref("Date")}} de dernière modification du fichier.
- {{domxref("File.name")}} {{readonlyinline}}
  - : Renvoie le nom du fichier.
- {{domxref("File.webkitRelativePath")}} {{readonlyinline}} {{non-standard_inline}}
  - : Renvoie le chemin auquel l’URL du {{domxref("File")}} est relative.

`File` implémente {{domxref("Blob")}}, et ainsi possède les propriétés suivantes :

- {{domxref("File.size")}} {{readonlyinline}}
  - : Renvoie la taille du fichier en octets.
- {{domxref("File.type")}} {{readonlyinline}}
  - : Renvoie le type [MIME](/fr/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types)du fichier.

## Méthodes

_L’interface `File` ne définit aucune méthode, mais hérite des méthodes de l’interface {{domxref("Blob")}} :_

- {{domxref("Blob.slice()", "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é.
- {{domxref("Blob.stream()", "Blob.stream()")}}
  - : Transforme le `File` en un {{domxref("ReadableStream")}} pouvant être utilisé pour lire le contenu du `File`.
- {{domxref("Blob.text()", "Blob.text()")}}
  - : Transforme le `File` en un flux (_stream_) et le lit en entier. Renvoie une {{jsxref("promise", "promesse")}} qui se résoud en une {{domxref("USVString")}} (texte).
- {{domxref("Blob.arrayBuffer()", "Blob.arrayBuffer()")}}
  - : Transforme le `File` en un flux (_stream_) et le lit en entier. Retourne une {{jsxref("promise", "promesse")}} qui se résoud en un {{domxref("ArrayBuffer")}}.

## Spécifications

| Spécification                    | Statut                       | Commentaire          |
| -------------------------------- | ---------------------------- | -------------------- |
| {{SpecName('File API')}} | {{Spec2('File API')}} | Définition initiale. |

## Compatibilité des navigateurs

{{Compat("api.File")}}

### Notes d’implémentation

- Dans Gecko, vous pouvez utiliser API depuis du code chrome. Voir [Using the DOM File API in chrome code](/en-US/docs/Extensions/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 {{geckoRelease("6.0")}}, le code privilégié (par exemple au sein d’une extension) peut passer un objet {{interface("nsIFile")}} au constructeur DOM `File` pour spécifier le fichier à référencer.
- À partir de Gecko 8.0 {{geckoRelease("8.0")}}, vous pouvez utiliser `new File` pour créer des objets `File` depuis des composants XPCOM au lieu de devoir instancier les objets {{interface("nsIDOMFile")}} directement. Contrairement à {{domxref("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 {{geckoRelease("7.0")}} : {{domxref("File.fileName")}}, {{domxref("File.fileSize")}}, {{domxref("File.getAsBinary()")}}, {{domxref("File.getAsDataURL()")}}, {{domxref("File.getAsText()","File.getAsText(string encoding)")}} ({{bug("661876")}}). Les propriétés standard {{domxref("File.name")}}, {{domxref("Blob.size")}}, et les méthodes de {{domxref("FileReader")}} devraient être utilisées à la place.

## Voir aussi

- [Utiliser des fichiers à partir d'applications web](/fr/docs/Web/API/File/Using_files_from_web_applications)
- {{domxref("FileReader")}}
- [Using the DOM File API in chrome code](/en-US/docs/Extensions/Using_the_DOM_File_API_in_chrome_code) (pour du code privilégié s’exécutant dans Gecko, tel que des extensions de Firefox)