Общая информация
Объект FileReader
позволяет веб-приложениям асинхронно читать содержимое файлов (или буферы данных), хранящиеся на компьютере пользователя, используя объекты File
или Blob
, с помощью которых задается файл или данные для чтения.
Объекты File
можно получить через объект FileList
, который возвращается как результат при выборе файлов пользователем с помощью элемента <input>
, через drag and drop из объекта DataTransfer
, или с помощью mozGetAsFile(),
метода доступного в API элемента HTMLCanvasElement
.
Конструктор
FileReader FileReader();
Более детально, с примерами см. Использование файлов в веб-приложениях.
Свойства
FileReader.error
Только для чтенияDOMError
представляет собой ошибку, происходящую при чтении файла.FileReader.readyState
Только для чтения- Число обозначающее состояние объекта
FileReader
. Принимает одно из значений State constants. FileReader.result
Только для чтения- Данные из файла. Значение свойства действительно только когда завершится операция чтения, причем формат данных зависит от способа, с помощью которого процесс был вызван.
Обработка событий
FileReader.onabort
- Обработчик для события
abort
. Это событие срабатывает каждый раз, когда прерывается операция чтения. FileReader.onerror
- Обработчик для события
error
. Это событие срабатывает каждый раз, когда при чтении возникает ошибка. FileReader.onload
- Обработчик для события
load
. Это событие срабатывает при каждом успешном завершении операции чтения. FileReader.onloadstart
- Обработчик для события
loadstart
. Это событие срабатывает каждый раз, при запуске процесса чтения. FileReader.onloadend
- Обработчик для события
loadend
. Это событие срабатывает каждый раз по окончании процесса чтения (не важно, успешном или нет). FileReader.onprogress
- Обработчик для события
progress
. Это событие срабатывает во время чтения данных изBlob
.
Замечание: т.к. FileReader
унаследован от EventTarget
, на все перечисленные события можно подписаться, используя метод addEventListener
.
Константы состояния
EMPTY
:0
: Данные еще не были загружены.LOADING
:1
: Данные в данный момент загружаются.DONE
:2
: Операция чтения была завершена.
Методы
FileReader.abort()
- Отмена операции чтения. После вызова, значение
readyState
станет равнымDONE
. FileReader.readAsArrayBuffer()
- Запускает процесс чтения данных указанного
Blob
, по завершении, аттрибутresult
будет содержать данные файла в видеArrayBuffer
. FileReader.readAsBinaryString()
- Запускает процесс чтения данных указанного
Blob
, по завершении, аттрибутresult
будет содержать бинарные данные файла в виде строки. FileReader.readAsDataURL()
- Запускает процесс чтения данных указанного
Blob
, по завершении, аттрибутresult
будет содержать данные файла в видеdata:
URL. FileReader.readAsText()
- Запускает процесс чтения данных указанного
Blob
, по завершении, аттрибутresult
будет содержать данные файла в виде текста.
Спецификация
Спецификация | Статус | Комментарий |
---|---|---|
File API Определение 'FileReader' в этой спецификации. |
Рабочий черновик | Начальное определение. |
Совместимость в браузерах
Движок | Firefox (Gecko) | Chrome | Internet Explorer* | Opera* | Safari |
---|---|---|---|---|---|
Базовая поддержка | 3.6 (1.9.2) | 7 | 10 | 12.02 | 6.0.2 |
Движок | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Базовая поддержка | 32 | 3 | 10 | 11.5 | 6.1 |
Заметки по реализации
- Для IE9 есть File API Lab.
- Opera предоставляет частичную поддержку в версии 11.1.
Относительно движка Gecko
- В версиях Gecko ниже 2.0 beta 7 (Firefox 4.0 beta 7), все параметры
Blob
были параметрамиFile
; в последствии это было изменено, для соответствия спецификации. - В версиях Gecko ниже 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) свойство
FileReader.error
возвращало объектFileError
. Этот интерфейс был упразднен и теперь свойствоFileReader.error
возвращает объектDOMError
, что соответствует определению FileAPI последней спецификации.
См. также
- Использование файлов в веб-приложениях
File
Blob
- nsIDOMFileReader - For addons/privileged scope