Общая информация

Объект 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' в этой спецификации.
Рабочий черновик Начальное определение.

Совместимость в браузерах

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
FileReaderChrome Полная поддержка 7Edge Полная поддержка ДаFirefox Полная поддержка 3.6
Замечания
Полная поддержка 3.6
Замечания
Замечания Prior to Firefox 4, Blob parameters were File parameters.
IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
Available in workersChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка 46IE Нет поддержки НетOpera Полная поддержка 11Safari Нет поддержки НетWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 46Opera Android Полная поддержка 11Safari iOS Нет поддержки НетSamsung Internet Android ?
abortChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
abort eventChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
errorChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6
Замечания
Полная поддержка 3.6
Замечания
Замечания Prior to Firefox 13, the error property returned a FileError object.
Замечания From Firefox 13 to Firefox 58, the error property returned a DOMError object.
Замечания From Firefox 58, the error property returns a DOMException object.
IE Полная поддержка 10
Замечания
Полная поддержка 10
Замечания
Замечания The error property returns a DOMError object.
Opera Полная поддержка 11Safari Полная поддержка 6
Замечания
Полная поддержка 6
Замечания
Замечания The error property returns a DOMError object.
WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32
Замечания
Полная поддержка 32
Замечания
Замечания From Firefox 32 to Firefox 58, the error property returned a DOMError object.
Замечания From Firefox 58, the error property returns a DOMException object.
Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1
Замечания
Полная поддержка 6.1
Замечания
Замечания The error property returns a DOMError object.
Samsung Internet Android ?
error eventChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
load eventChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
loadend eventChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
loadstart eventChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
onabortChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
onerrorChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
onloadChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
onloadendChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
onprogressChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
progress eventChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
readyStateChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
readAsArrayBufferChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 12Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 12Safari iOS Полная поддержка 6.1Samsung Internet Android ?
readAsBinaryStringChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Нет поддержки НетOpera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
readAsDataURLChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32
Замечания
Полная поддержка 32
Замечания
Замечания Using the camera in Android 8.x raises an exception. See bug 1511083.
Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
readAsTextChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?
resultChrome Полная поддержка 7Edge Полная поддержка 12Firefox Полная поддержка 3.6IE Полная поддержка 10Opera Полная поддержка 11Safari Полная поддержка 6WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 32Opera Android Полная поддержка 11Safari iOS Полная поддержка 6.1Samsung Internet Android ?

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Совместимость неизвестна  
Совместимость неизвестна
Смотрите замечания реализации.
Смотрите замечания реализации.

 

Заметки по реализации

Относительно движка 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 последней спецификации.

См. также

Метки документа и участники

Метки: 
Внесли вклад в эту страницу: YozhEzhi, mdnwebdocs-bot, 3lvcz
Обновлялась последний раз: YozhEzhi,