Как обратиться к локальному файлу по ссылке в приложении Chrome

Рейтинг: 3Ответов: 1Опубликовано: 09.12.2014

Доброго времени суток!

Можно-ли получить доступ к локальному файлу из приложения или расширения под Chrome используя пути такого вида:

  • file:///C:\Folder\File.jpg
  • C:\Folder\File.jpg

При попытке создать объект File() из локальной ссылки появляются ошибки:

За полным разъяснением этого вопроса смотреть мой ответ.

Ответы

▲ 3Принят

Приложение или расширение Chrome не может получить доступ к локальному файлу напрямую, так как это было бы серьезным нарушением безопасности. Конечно, это ограничение можно обойти, как мне объяснили на stackoverflow через Native host. Правда, лично я не пробовал этого делать, так как свою проблему решил просто сохранением локальных файлов внутри Indexed BD. Подробнее обо всех известных мне способах хранения файлов и последующей работы с ними читайте далее.

Работа с файлами через Indexed BD.

  • Как сохранить файл в indexedbd? Ответ с разъяснениями здесь.
  • Как получить файл по сети и сохранить в indexedbd? Ответ здесь.

Используем FileSystem API для сохранения и работы с файлами.

Local Storage & Session storage & Cookie Storage

  • Как работать с cookie storage? Справка здесь.
  • Как сохранить файл в local storage?
  • Как работать с session storage (временное хранилище)?

Сами файлы (их объекты) для работы с ними Вы можете получить через drag&drop или <input type="file" />. Почитать подробнее о том, как это делается с примерами и последующим разбором полетов можно здесь.

Надеюсь, что ответ объяснил хотя бы поверхностно о работе с файлами в приложениях и расширениях Google Chrome.