Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Чтение файла на стороне клиента (https://javascript.ru/forum/css-html/60617-chtenie-fajjla-na-storone-klienta.html)

annie88 11.01.2016 16:54

т.е. без диалогового окна в этом случае не обойтись?

Dilettante_Pro 11.01.2016 17:43

Похоже, работа на стороне клиента без участия человека невозможна из соображений безопасности - чтобы скрипт втихомолку не шарил по компу

Dilettante_Pro 11.01.2016 18:05

Как выясняется, читает файл именно input type="file"
FileReader только вытаскивает содержимое считанного файла.
Можно создать объект
var selectedFile = new File(["Test Content ...."], "C:\Test\TestFile.txt", {type: "text/plain"});
Но толку от этого никакого: содержание файла тоже нужно вставить в объект ( в данном примере Test Content ....

annie88 12.01.2016 06:59

Dilettante_Pro,большое спасибо)
похоже, что все же придется копать в сторону File System или Local Storage(((

Dilettante_Pro 12.01.2016 11:52

annie88,
Успехов!
Тонкостей не знаю, но, мне кажется, этот вариант работает с хранилищем, которое доступно только приложению, создавшему хранилище. Т.е. какое-либо другое приложение на локальной машине его вообще не увидит

annie88 12.01.2016 16:14

Получилось))) если создать файловую систему в браузере, то из web-приложения можно будет создавать/заполнять/читать файлы, которые будут доступны и десктопному приложению, нужно лишь задать в нем правильный путь. Данное решение, насколько я поняла, доступно пока только в chrome.

Dilettante_Pro 12.01.2016 17:57

Цитата:

Сообщение от annie88 (Сообщение 403430)
нужно лишь задать в нем правильный путь.

А какой это правильный путь? В браузере их пути относительные.

annie88 13.01.2016 08:01

Цитата:

Сообщение от Dilettante_Pro (Сообщение 403442)
А какой это правильный путь? В браузере их пути относительные.

не совсем, можно создать постоянные файлы и записывать нужные данные в них, тогда при перезагрузке браузера информация будет сохранена. Их можно найти на компьютере по пути C:\Users\имя пользователя\AppData\Local\Google\Chro me\User Data\Default\File System\смотрим каталог с последний датой изменения\(каталоги p-постоянные; t-временные)\path- находим файл с расширением log и смотрим какое имя задал компьютер нашему файлу, созданному таким образом
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
 window.requestFileSystem(window.TEMPORARY, 5*1024*1024, function(fs) {
  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
  }, функция_обработки_ошибки );
}, функция_обработки_ошибки);

затем идем на уровень выше (в данном случае возвращаемся в t) и находим указанный в log каталог и файл.

Dilettante_Pro 13.01.2016 10:44

annie88,
Спасибо, очень интересная информация. Плохо только, что работает только в Chrome
PS: я, кстати, искал fs на локалке по этому же пути, но ничего не нашел - не отображались скрытые файлы и папки, а копнуть поглубже не додумался...


Часовой пояс GMT +3, время: 03:03.