FileReader
==========

O objeto **`FileReader`** permite que aplicativos da web leiam de forma assíncrona o conteúdo de arquivos (ou buffers de dados brutos) armazenados no computador do usuário, usando `File` ou `Blob` objetos para especificar o arquivo ou dados a serem lidos.

Objetos de arquivo podem ser obtidos de um objeto `FileList` retornado como resultado de um usuário selecionar arquivos usando o elemento `<input>` ou de uma operação de arrastar e soltar `DataTransfer` objeto.

O `FileReader` só pode acessar o conteúdo dos arquivos que o usuário selecionou explicitamente, usando um elemento HTML `<input type="file">` ou arrastando e soltando. Ele não pode ser usado para ler um arquivo por nome de caminho do sistema de arquivos do usuário. Para ler arquivos no sistema de arquivos do cliente por nome de caminho, use a API de acesso ao sistema de arquivos (en-US). Para ler arquivos do lado do servidor, use soluções Ajax padrão, com permissão CORS se estiver lendo entre domínios.

**Note:** This feature is available in Web Workers

EventTarget

FileReaderConstrutor
----------

`FileReader()`

Retorna um `FileReader` recém-construído.

Consulte Usando arquivos de aplicativos da Web (en-US) para obter detalhes e exemplos.

Propriedades da instância
-------------------------

`FileReader.error` (en-US) Somente leitura 

Um `DOMException` (en-US) representando o erro que ocorreu durante a leitura do arquivo.

`FileReader.readyState` (en-US) Somente leitura 

Um número que indica o estado do `FileReader`. Este é um dos seguintes:

| Nome | Valor | Descrição |
| --- | --- | --- |
| `EMPTY` | `0` | Nenhum dado foi carregado ainda. |
| `LOADING` | `1` | Os dados estão sendo carregados no momento. |
| 'DONE' | `2` | Toda a solicitação de leitura foi concluída. |

`FileReader.result` (en-US) Somente leitura 

o conteúdo do arquivo. Esta propriedade só é válida após a conclusão da operação de leitura, e o formato dos dados depende de qual dos métodos foi utilizado para iniciar a operação de leitura.

Métodos de instância
--------------------

`FileReader.abort()` (en-US)

Aborta a operação de leitura. Ao retornar, o `readyState` será `DONE`.

`FileReader.readAsArrayBuffer()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez finalizado, o atributo `result` contém um `ArrayBuffer` representando os dados do arquivo.

`FileReader.readAsBinaryString()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez concluído, o atributo `result` contém os dados binários brutos do arquivo como uma string.

`FileReader.readAsDataURL()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez finalizado, o atributo `result` contém uma URL `data:` representando os dados do arquivo.

`FileReader.readAsText()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez terminado, o atributo `result` contém o conteúdo do arquivo como uma string de texto. Um nome de codificação opcional pode ser especificado.

Eventos
-------

Ouça esses eventos usando `addEventListener()` ou atribuindo um ouvinte de eventos à propriedade `oneventname` desta interface. Remova os ouvintes de eventos com `removeEventListener()`, uma vez que `FileReader` não seja mais usado, para evitar vazamentos de memória.

`abort` (en-US)

Acionado quando uma leitura foi abortada, por exemplo, porque o programa chamou `FileReader.abort()` (en-US).

`error` (en-US)

Acionado quando a leitura falhou devido a um erro.

`load`

Disparado quando uma leitura foi concluída com sucesso.

`loadend` (en-US)

Acionado quando uma leitura foi concluída, com sucesso ou não.

`loadstart` (en-US)

Disparado quando uma leitura é iniciada.

`progress` (en-US)

Acionado periodicamente à medida que os dados são lidos.

Especificações
--------------

| Specification |
| --- |
| File API # APIASynch |

Compatibilidade do navegador
----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Usando arquivos de aplicativos da web (en-US)
* `File`
* `Blob`
* `FileReaderSync` (en-US){ APIRef("File API")}}
Resumo
------

O objeto `FileReader` permite aplicações web ler assincronamente o conteúdo dos arquivos (ou buffers de dados puros) do computador do usuário, utilizando o objeto `File` ou `Blob` para especificar o arquivo ou os dados a serem lidos.

Objetos File podem ser obtidos a partir de um objeto `FileList` retornado como resultado da seleção de um usuário utilizando um elemento `<input>`, a partir de uma operação de drag and drop `DataTransfer`, ou a partir de um `mozGetAsFile()` da api `HTMLCanvasElement` (en-US).

Construtor
----------
```

FileReader FileReader();
```


Veja Using files from web applications para detalhes e exemplos.

Propriedades
------------

`FileReader.error` (en-US) Somente leitura 

Um `DOMError` (en-US) representa o erro que ocorreu durante a leitura do arquivo.

`FileReader.readyState` (en-US) Somente leitura 

Um número indicando o estado do `FileReader`. Este poderá ser um dos seguintes estados State constants.

`FileReader.result` (en-US) Somente leitura 

O conteúdo do arquivo. Esta propriedade é válida apenas após a operação de leitura estar completa, e o formato dos dados dependem de qual método foi usado para iniciar a operação de leitura.

### Manipuladores de eventos

`FileReader.onabort` (en-US)

Um manipulador para o evento `abort (en-US)`. Este evento é chamado cada vez que a operação de leitura é abortada.

`FileReader.onerror` (en-US)

Um manipulador para o evento `error (en-US)`. Este evento é chamado cada vez que a operação de leitura encontra um erro.

`FileReader.onload`

Um manipulador para o evento `load (en-US)`. Este evento é chamado cada vez que a operação de leitura é completada com sucesso.

`FileReader.onloadstart`

Um manipulador para o evento `loadstart (en-US)`. Este evento é chamado cada vez que a leitura começa.

`FileReader.onloadend`

Um manipulador para o evento `loadend (en-US)`. Este evento é chamado cada vez que a operação de leitura é completada (tanto em caso de sucesso quanto de erro).

`FileReader.onprogress`

Um manipulador para o evento `progress (en-US)`. Este evento é chamado durante a leitura do conteúdo de `Blob`.


**Nota:** Nota: O `FileReader` herda de `EventTarget`, todos estes eventos podem ser listados usando o método `addEventListener`.

### Constantes de estado

* `EMPTY`: `0` : Nenhum dado foi carregado ainda.
* `LOADING`: `1` : Os dados estão sendo carregados.
* `DONE`: `2` : Toda a requisição de leitura foi completada.
Métodos
-------

`FileReader.abort()` (en-US)

Aborta a operação de leitura. O retorno, no `readyState` será `DONE`.

`FileReader.readAsArrayBuffer()`

Inicia a leitura do conteúdo do `Blob` espeficado, uma vez finalizado, o atributo `result` conterá um `ArrayBuffer` representando os dados do arquivo.

`FileReader.readAsBinaryString()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez finalizado, o atributo `result` conterá os dados raw binários do arquivo como string.

`FileReader.readAsDataURL()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez finalizado, o atributo `result` conterá um `data:` URL representando os dados do arquivo.

`FileReader.readAsText()`

Inicia a leitura do conteúdo do `Blob` especificado, uma vez finalizado, o atributo `result` conterá o conteúdo do arquivo como string de texto.

Especificações
--------------

| Specification |
| --- |
| File API # APIASynch |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Using files from web applications
* `File`
* `Blob`