Доброго времени суток! Можно-ли получить доступ к локальному файлу из приложения или расширения под Chrome используя пути такого вида: file:///C:\Folder\File.jpg C:\Folder\File.jpg При попытке создать объект File() из локальной ссылки появляются ошибки: Error: GET chrome-extension://acnoddeoamaikpmmdkehnkppmcgcpfjl/C:ImagesTestcat.jpg net::ERR_FILE_NOT_FOUND Not allowed to load local resource: C:\Images\myjpeg.jpg За полным разъяснением этого вопроса смотреть мой ответ.
Ответ
Приложение или расширение Chrome не может получить доступ к локальному файлу напрямую, так как это было бы серьезным нарушением безопасности. Конечно, это ограничение можно обойти, как мне объяснили на stackoverflow через Native host. Правда, лично я не пробовал этого делать, так как свою проблему решил просто сохранением локальных файлов внутри Indexed BD. Подробнее обо всех известных мне способах хранения файлов и последующей работы с ними читайте далее.
Работа с файлами через Indexed BD.
Как сохранить файл в indexedbd? Ответ с разъяснениями здесь
Как получить файл по сети и сохранить в indexedbd? Ответ здесь
Используем FileSystem API для сохранения и работы с файлами.
Справка по FileSystem API
Статья о работе с FileSystem API
Local Storage & Session storage & Cookie Storage
Как работать с cookie storage? Справка здесь.
Как сохранить файл в local storage?
Как работать с session storage (временное хранилище)?
Сами файлы (их объекты) для работы с ними Вы можете получить через drag&drop или . Почитать подробнее о том, как это делается с примерами и последующим разбором полетов можно здесь
Надеюсь, что ответ объяснил хотя бы поверхностно о работе с файлами в приложениях и расширениях Google Chrome.
Комментариев нет:
Отправить комментарий