Чтение файла на стороне клиента
Добрый день!
Не могли бы Вы мне помочь? Есть некое приложение создающее на стороне клиента файл и записывающее в него какую-то информацию. Как можно средствами 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, время: 16:09. |