aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/api/file/index.html
blob: f23d046297c69044f935b2b7a4688eb2e7451c6f (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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
title: File
slug: Web/API/File
tags:
  - API
  - File API
  - Interfaz
  - Referencia
  - Web
translation_of: Web/API/File
---
<div>{{APIRef }}</div>

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

<p>Los objetos <code>File</code> son generalmente recuperados a través de un objeto {{domxref("FileList")}} retornado como resultado de un usuario seleccionado archivos por medio de un elemento {{ HTMLElement("input") }} , desde las operaciones drag y drop de un objeto  {{domxref("DataTransfer")}} ,<span style="line-height: 1.5;"> o desde la API </span><code style="font-size: 14px;">mozGetAsFile()</code><span style="line-height: 1.5;"> en un {{ domxref("HTMLCanvasElement") }}. En Gecko, desde código con privilegios es posible crear objetos <code>File</code> representando cualquier archivo local sin esperar la interacción del usuario </span> (ver {{anch("Implementation notes")}} para más información.)</p>

<p>Un objeto <code>File</code> es una especie específica de {{DOMxRef("Blob")}}, y puede ser utilizada en cualquier contexto que un Blob puede ser usado. En particular, {{DOMxRef("FileReader")}}, {{DOMxRef("URL.createObjectURL()")}}, {{DOMxRef("ImageBitmapFactories.createImageBitmap()", "createImageBitmap()")}}, y {{DOMxRef("XMLHttpRequest", "", "send()")}} aceptan tanto <code>Blob</code>s y <code>File</code>s.</p>

<p>Ver <a href="/en-US/docs/Using_files_from_web_applications">Utilizando archivos desde aplicaciones web (Using files from web applications)</a> para más información y ejemplos.</p>

<p>{{InheritanceDiagram}}</p>

<h2 id="Constructor">Constructor</h2>

<dl>
 <dt>{{domxref("File.File", "File()")}}</dt>
 <dd>Retorna un nuevo objeto de tipo <code>File</code>.</dd>
</dl>

<h2 id="Propiedades">Propiedades</h2>

<dl>
 <dt>{{DOMxRef("File.lastModified")}}{{ReadOnlyInline}}</dt>
 <dd>Retorna el último tiempo que el archivo se modifico, en milisegundos desde la época de UNIX (1 de enero de 1970 a medianoche).</dd>
 <dt>{{DOMxRef("File.lastModifiedDate")}} {{Deprecated_Inline}}{{ReadOnlyInline}} {{Gecko_MinVersion_Inline("15.0")}}</dt>
 <dd>Retorna la última fecha (en un objeto {{JSxRef("Date")}}<code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date">Date</a></code>) de modificación del archivo referenciada por el objeto <code>File</code>.</dd>
 <dt>{{DOMxRef("File.name")}}{{ReadOnlyInline}}</dt>
 <dd>Retorna el nombre del archivo referenciada por el objeto <code>File</code>.</dd>
 <dt>{{DOMxRef("File.webkitRelativePath")}} {{Non-standard_Inline}}{{ReadOnlyInline}}</dt>
 <dd>Retorna la ruta relativa de la URL del {{DOMxRef("File")}}.</dd>
 <dd>
 <p><code>File</code> implementa {{DOMxRef("Blob")}}, así que también cuenta con las siguientes propiedades:</p>
 </dd>
 <dt>{{DOMxRef("File.size")}}{{ReadOnlyInline}}</dt>
 <dd>Retorna el tamaño del archivo en bytes.</dd>
 <dt>{{DOMxRef("File.type")}}{{ReadOnlyInline}}</dt>
 <dd>Retorna el tipo <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME </a>del archivo.</dd>
</dl>

<h2 id="Métodos">Métodos</h2>

<p><em>La interfaz <code>File</code> no define algún método, pero los hereda de la interfaz {{domxref("Blob")}}:</em></p>

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

<h2 id="Especificaciones">Especificaciones</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificación</th>
   <th scope="col">Estado</th>
   <th scope="col">Comentario</th>
  </tr>
  <tr>
   <td>{{SpecName('File API')}}</td>
   <td>{{Spec2('File API')}}</td>
   <td>Definición inicial.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilidad_en_Navegadores">Compatibilidad en Navegadores</h2>

<div>


<p>{{Compat("api.File")}}</p>
</div>

<h3 id="Notas_de_Implementación">Notas de Implementación</h3>

<ul>
 <li>En Gecko, puedes hacer uso de esta API desde código chrome. Vea <a href="/en-US/docs/Extensions/Using_the_DOM_File_API_in_chrome_code" title="Using the DOM File API in chrome code">Utilizando la API DOM File en código chrome (Using the DOM File API in chrome code)</a> para más detalles.</li>
 <li>Empezando desde Gecko 6.0 {{geckoRelease("6.0")}}, código privilegiado (como las extensiones por ejemplo) puede pasar un objeto {{interface("nsIFile")}} al constructor  DOM <code>File</code> para especificar el archivo a referenciar.</li>
 <li>Empezando desde Gecko 8.0 {{geckoRelease("8.0")}}, usted puede usar <code>new File</code> para la creación de objetos <code>File</code> a partir de código de componentes XPCOM en lugar de tener que instanciar el objeto {{interface("nsIDOMFile")}} directamente. El constructor toma, en contraste a Blob, un segundo argumento como nombre de archivo. El nombre de archivo puede ser cualquier String.
  <pre class="syntaxbox">File File(
  Array parts,
  String filename,
  BlobPropertyBag properties
);</pre>
 </li>
 <li> Las siguientes propiedades y métodos no estándar fueron removidos en 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")}}). Propiedades estándar {{DOMxRef("File.name")}}, {{DOMxRef("Blob.size")}}, y métodos en {{DOMxRef("FileReader")}} deberían ser usados en su lugar.</li>
</ul>

<h2 id="See_also" name="See_also">Ver también</h2>

<ul>
 <li><a href="/en-US/docs/Using_files_from_web_applications" title="Using files from web applications">Usando archivos desde aplicaciones web</a></li>
 <li><a href="/en-US/docs/Extensions/Using_the_DOM_File_API_in_chrome_code" title="Extensions/Using the DOM File API in chrome code">Usando la API DOM File en código chrome</a></li>
 <li>{{domxref("FileReader")}}</li>
</ul>