FileReader
Общая информация
Объект FileReader
позволяет веб-приложениям асинхронно читать содержимое файлов (или буферы данных), хранящиеся на компьютере пользователя, используя объекты File
или Blob
, с помощью которых задаётся файл или данные для чтения.
Объекты File
можно получить через объект FileList
, который возвращается как результат при выборе файлов пользователем с помощью элемента <input>
, через drag and drop из объекта DataTransfer
, или с помощью mozGetAsFile()
, метода доступного в API элемента HTMLCanvasElement
.
Предупреждение: FileReader
используется только для безопасным образом чтения содержимого файла из пользовательской (удалённой) системы. Его нельзя использовать для простого чтения файла по пути из файловой системы. Для чтения файла по пути в JavaScript следует использовать стандартное решение Ajax для чтения файла на стороне сервера с разрешение CORS при кроссдоменном чтении.
Примечание: Эта возможность доступна в Web Workers.
Конструктор
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
будет содержать данные файла в виде текста.
Спецификации
Specification |
---|
File API # APIASynch |
Совместимость с браузерами
BCD tables only load in the browser
Примечания по реализации
- Для IE9 есть File API Lab.
- Opera предоставляет частичную поддержку в версии 11.1.
Относительно движка Gecko
- В версиях Gecko ниже 2.0 beta 7 (Firefox 4.0 beta 7), все параметры
Blob
были параметрамиFile
; в последствии это было изменено, для соответствия спецификации. - В версиях Gecko ниже 13.0 свойство
FileReader.error
возвращало объектFileError
. Этот интерфейс был упразднён и теперь свойствоFileReader.error
возвращает объектDOMError
, что соответствует определению FileAPI последней спецификации.
Смотрите также
- Использование файлов в веб-приложениях
File
Blob
- nsIDOMFileReader - For addons/privileged scope