Чтение файла на стороне клиента
Добрый день!
Не могли бы Вы мне помочь? Есть некое приложение создающее на стороне клиента файл и записывающее в него какую-то информацию. Как можно средствами javascript эту информацию считать? Все действия должны происходить только на стороне клиента, без сохранения файла на сервере. P.S. думала в сторону cookie и locallstorage, но не знаю может ли десктопное приложение что-то туда писать. |
annie88, считать содержимое файла на стороне клиента легко:
При помощи input type="file" выбираем файл на клиентском компьютере и через объект типа FileReader считываем его содержимое: <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" > <title>Untitled Page</title> <script type="text/javascript"> function readFile() { var selectedFile = document.getElementById('inputFile').files[0]; var reader = new FileReader(); reader.onload = function (e) { var FileContent = e.target.result; parseContent(FileContent); }; reader.readAsText(selectedFile); } function parseContent(content) { alert(content); } </script> </head> <body> <input id="inputFile" type="file" onchange="readFile()"> </body> </html> А вот потом содержимое файла надо разобрать... |
Спасибо))) а можно считать файл без вывода окон? просто считывать данные со статично расположенного файла (имя его тоже известно и оно не меняется)?
|
Естественно можно!
Тогда не нужен input, и в функции readFile() не нужна строка получения имени файла из input'а var selectedFile = document.getElementById('inputFile').files[0]; Известное имя файла нужно подставить в reader.readAsText(file); Можно передать имя файла в функцию readFile() в качестве параметра |
Здорово))) однако не совсем понятно как можно сформировать объект для передачи в качестве параметра в reader.readAsText?
|
Цитата:
например <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" > <title>Untitled Page</title> <script type="text/javascript"> function readFile(selectedFile) { var reader = new FileReader(); reader.onload = function (e) { var FileContent = e.target.result; parseContent(FileContent); }; reader.readAsText(selectedFile); } function parseContent(content) { alert(content); } </script> </head> <body> <input type="button" onclick="readFile('C:\Test\TestFile.txt')"> </body> </html> |
Цитата:
|
Цитата:
В первом примере она получает значение (символьное) из input, во втором - как параметр функции из символьной строки при вызове функции |
Цитата:
File { name="file.txt", lastModified=1449139811127, lastModifiedDate=Date,...} |
Да, пардон, это Blob...
|
Часовой пояс GMT +3, время: 21:30. |