FileReader проблема с локальными файлами
Привет, при разработке приложения для Хрома, столкнулся с необходимостью чтения локальных файлов. По данному вопросу есть хороший мануал http://www.html5rocks.com/tutorials/file/dndfiles/
Используя инфу из этого мануала я написал себе плагин для jQuery, в черновом варианте пока (если кому интересно - вышлю). Казалось бы все просто, но неожиданно выплыла странная проблема. Если скрипт запускается с локального диска - то получить содержимое локальных файлов не получается (атрибуты файла читаются, но после вызова функции readAsBinaryString в evt.target.result - пустота). Если абсолютно тот же самый скрипт загрузить на хостинг, открыть страницу со скриптом с веба - то локальные файлы читаются. Подозреваю, что это какая-то секюрная фича, но смысл ее мне не понятен. Кстати, те примеры из упомянутого выше мануала, которые касаются непосредственно чтения локальных файлов (побайтово или целиком) - имеют такие же проблемы. Другие браузеры не пробовал, но они мне не нужны в принципе, поскольку разрабатывается конкретно приложение для Google Chrome. Сейчас у меня версия 7.0.517.44 (это стабильная ветка). |
Цитата:
|
Цитата:
Что это означает? - это означает, что для того, чтобы злоумышленникам что-то отправилось, я должен сначала нажать на кнопку "просмотреть файлы", затем через диалог выбрать тот самый "какой-то важный файл"... только начиная с этого момента возможна автоматизация. Так что, на самом деле, проблем с секьюрностью нет. |
Кста .интересно. после выбора файла страница обновляеться? если да-то вот тебе и причина.была подобная проблема на локальном-файл (графический) грузился в контейнер-и был в нём ровно столько времени сколько висело аларм сообщение об успешности. а дальше закрытие аларма-обновление страницы и отсутствие картинки
|
Цитата:
Так вот, если открыть локально НЕ-инсталлированное приложение, для Хрома, просто как файл - то код чтения локальных файлов не работает, все как я описывал выше. НО, если инсталировать хром-приложение и, соответственно, открыть страницу с кодом уже как приложение - то все отлично работает. Локальные файлы читаются. Если интересно, могу показать пример, где файлы читаются с локального диска, затем сохраняются в локальный же Web SQL Storage, и затем по запросу оттуда читаются и выводятся в слой (в текстовом виде). Кстати, с последним тоже связана сложность - если попытаться вывести в слой не текст, а html-строку, которая содержит ссылки на локальные файлы (а у меня в XML-ях такого полно), то ничего не получится - скрипт выдаст ошибку: "Not allowed to load local resource". Совершенно необъяснимо зачем нужна такая секьюрная штука, поскольку, если мне нужно - ее элементарно обойти. Если мне нужно вывести в страницу ссылки на локальные файлы, которые содержатся в тексте - я просто могу парсером завернуть их джаваскрипт функции. |
Часовой пояс GMT +3, время: 06:03. |