JavaScript. Подробное руководство, 6-е издание, стр. 393
По мере чтения содержимого указанного двоичного объекта объект
<b>FileReader</b><b>readyState</b><b>result</b><b>ArrayBuffег</b><b>readyState</b><b>result</b><b>onprogress</b><b>onload</b>Пример 22.11 демонстрирует, как использовать метод
<b>readAsText()</b>Пример 22.11. Чтение текстовых файлов с помощью объекта <b>FileReader</b>
<b><script></b><b>// Читает указанный текстовый файл и отображает его в элементе <рге> ниже</b><b>function readfile(f) {</b><b> var reader = new FileReader(); // Создать объект FileReader</b><b> reader.readAsText(f); // Прочитать файл</b><b> reader.onload = function() { // Определить обработчик события</b><b> var text = reader.result; 11 Это содержимое файла</b><b> var out = document.getElementById("output"); // Найти элемент output</b><b> out.innerHTML = // Очистить его</b><b> out.appendChild(document.createTextNode(text));// Вывести содержимое </b><b> } // файла</b><b> reader.onerror = function(e) { // Если что-то пошло не так</b><b> console.log("Error", .e); // Вывести сообщение об ошибке</b><b> };</b><b>}</b><b></script></b><b>// Выберите файл для отображения:</b><b><input type="file" onchange=”readfile(this. files[0])"x/input></b><b><pre id="output"x/pre></b>Метод
<b>readAsArrayBuffer()</b><b>readAsText(),</b><b>ArrayBuffег</b><b>readAsArrayBuffer()</b>Пример 22.12. Чтение первых четырех байтов из файла
<b><script></b><b>// Исследует первые 4 байта в указанном двоичном объекте. Если это "сигнатура",</b><b>// определяющая тип файла, асинхронно устанавливает свойство двоичного объекта.</b><b>function typefile(file) {</b><b> var slice = file.slice(0,4); // Читать только первые 4 байта</b><b> var reader = new FileReader(); // Создать асинхронный FileReader</b><b> reader.readAsArrayBuffer(slice); // Прочитать фрагмент файла</b><b> reader.onload = function(e) {</b><b> var buffer = reader.result; // Результат - ArrayBuffer</b><b> var view = new DataView(buffer); // Получить доступ к результату</b><b> var magic = view.getUint32(0, false); // 4 байта, прямой порядок</b><b> switch(magic) { // Определить по ним тип файла</b><b> case 0х89504Е47: file.verified_type = "image/png"; break;</b><b> case 0x47494638: file.verified_type = "image/gif"; break;</b><b> case 0x25504446: file.verified_type = "application/pdf"; break;</b><b> case 0x504b0304: file.verified_type = "application/zip"; break;</b><b> }</b><b> console.log(file.name, file.verified_type);</b><b> };</b><b>}</b><b></script></b><b><input type="file" onchange="typefile(this. files[0])”></input></b>В фоновых потоках выполнения вместо объекта
<b>FileReader</b><b>FileReaderSync</b><b>readAsText()</b><b>readAsArrayBuffer(),</b><b>ArrayBuffer</b><b>FileReaderSync</b>22.7. Прикладной интерфейс к файловой системе
В разделе 22.6.5 вы познакомились с классом
<b>FileReader</b><b>File</b><b>Blob</b>