Tradução em progresso.
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
.
Construtor
FileReader FileReader();
Veja Using files from web applications para detalhes e exemplos.
Propriedades
FileReader.error
Somente leitura- Um
DOMError
representa o erro que ocorreu durante a leitura do arquivo. FileReader.readyState
Somente leitura- Um número indicando o estado do
FileReader
. Este poderá ser um dos seguintes estados State constants. FileReader.result
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
- Um manipulador para o evento
abort
. Este evento é chamado cada vez que a operação de leitura é abortada. FileReader.onerror
- Um manipulador para o evento
error
. Este evento é chamado cada vez que a operação de leitura encontra um erro. FileReader.onload
- Um manipulador para o evento
load
. Este evento é chamado cada vez que a operação de leitura é completada com sucesso. FileReader.onloadstart
- Um manipulador para o evento
loadstart
. Este evento é chamado cada vez que a leitura começa. FileReader.onloadend
- Um manipulador para o evento
loadend
. 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
. Este evento é chamado durante a leitura do conteúdo deBlob
.
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()
- 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 atributoresult
conterá umArrayBuffer
representando os dados do arquivo. FileReader.readAsBinaryString()
- Inicia a leitura do conteúdo do
Blob
especificado, uma vez finalizado, o atributoresult
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 atributoresult
conterá umdata:
URL representando os dados do arquivo. FileReader.readAsText()
- Inicia a leitura do conteúdo do
Blob
especificado, uma vez finalizado, o atributoresult
conterá o conteúdo do arquivo como string de texto.
Especificações
Especificação | Status | Comentário |
---|---|---|
File API The definition of 'FileReader' in that specification. |
Rascunho atual | Definição inicial. |
Compatibilidade
Feature | Firefox (Gecko) | Chrome | Internet Explorer* | Opera* | Safari |
---|---|---|---|---|---|
Basic support | 3.6 (1.9.2) | 7 | 10 | 12.02 | 6.0.2 |
Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | 32 | 3 | 10 | 11.5 | 6.1 |
Notas de implementações
- IE9 possui uma File API Lab.
- Opera possui suporte parcial na versão 11.1.
Notas específicas para Gecko
- Em versões anteriores ao Gecko 2.0 beta 7 (Firefox 4.0 beta 7), todos os parâmetros
Blob
abaixo eram parâmetrosFile
. Isto foi então atualizado para adequarem-se corretamente às especificações. - Em versões anteriores ao Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10), a propriedade
FileReader.error
retornava um objetoFileError
. Esta interface foi removida e a propriedadeFileReader.error
agora retorna o objetoDOMError
, assim como está definido na última versão da FileAPI.