File

La interfaz File provee información acerca de los archivos y permite que el código JavaScript en una página web tenga acceso a su contenido.

Los objetos File son generalmente recuperados a través de un objeto FileList retornado como resultado de un usuario seleccionado archivos por medio de un elemento <input> , desde las operaciones drag y drop de un objeto  DataTransfer , o desde la API mozGetAsFile() en un HTMLCanvasElement. En Gecko, desde código con privilegios es posible crear objetos File representando cualquier archivo local sin esperar la interacción del usuario (ver Implementation notes para más información.)

Un objeto File es una especie específica de Blob, y puede ser utilizada en cualquier contexto que un Blob puede ser usado. En particular, FileReader, URL.createObjectURL(), createImageBitmap(), y XMLHttpRequest.send() aceptan tanto Blobs y Files.

Ver Utilizando archivos desde aplicaciones web (Using files from web applications) para más información y ejemplos.

Constructor

File()
Retorna un nuevo objeto de tipo File.

Propiedades

File.lastModifiedRead only
Retorna el último tiempo que el archivo se modifico, en milisegundos desde la época de UNIX (1 de enero de 1970 a medianoche).
File.lastModifiedDate This deprecated API should no longer be used, but will probably still work. Read only
Retorna la última fecha (en un objeto DateDate) de modificación del archivo referenciada por el objeto File.
File.nameRead only
Retorna el nombre del archivo referenciada por el objeto File.
File.webkitRelativePath This API has not been standardized. Read only
Retorna la ruta relativa de la URL del File.

File implementa Blob, así que también cuenta con las siguientes propiedades:

File.sizeRead only
Retorna el tamaño del archivo en bytes.
File.typeRead only
Retorna el tipo MIME del archivo.

Métodos

La interfaz File no define algún método, pero los hereda de la interfaz Blob:

Blob.slice([start[, end[, contentType]]])
Retorna un nuevo objeto Blob conteniendo la información en el rango especificado de bytes de la fuente Blob.
Blob.stream()
Transforma el archivo File en un ReadableStream que puede ser usado para leer el contenido de File.
Blob.text()
Transforma el archivo File en una corriente (stream) para leerse hasta completarse. Retorna una promesa que se resuelve con un USVString (texto).
Blob.arrayBuffer()
Transforma el archivo File en una corriente y leerlo hasta completarse. Devuelve una promesa que resuelve con un ArrayBuffer.

Especificaciones

Especificación Estado Comentario
File API Working Draft Definición inicial.

Compatibilidad en Navegadores

BCD tables only load in the browser

Notas de Implementación

  • En Gecko, puedes hacer uso de esta API desde código chrome. Vea Utilizando la API DOM File en código chrome (Using the DOM File API in chrome code) para más detalles.
  • Empezando desde Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), código privilegiado (como las extensiones por ejemplo) puede pasar un objeto nsIFile al constructor  DOM File para especificar el archivo a referenciar.
  • Empezando desde Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), usted puede usar new File para la creación de objetos File a partir de código de componentes XPCOM en lugar de tener que instanciar el objeto nsIDOMFile directamente. El constructor toma, en contraste a Blob, un segundo argumento como nombre de archivo. El nombre de archivo puede ser cualquier String.
    File File(
      Array parts,
      String filename,
      BlobPropertyBag properties
    );
  •  Las siguientes propiedades y métodos no estándar fueron removidos en Gecko 7 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4): File.fileName, File.fileSize, File.getAsBinary(), File.getAsDataURL(), File.getAsText(string encoding) (error 661876). Propiedades estándar File.name, Blob.size, y métodos en FileReader deberían ser usados en su lugar.

Ver también