Как получить ссылки на файлы?

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

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

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

Нужно сохранить ссылки на добавленные файлы пользователем (из внешней среды), чтобы после выключения браузера пользователь мог вернуться и продолжить работу с его локальными файлами?

Дело в том, что получить путь к добавляемому файлу нельзя (по соображениям безопасности), только:

  1. base64 (ссылка в виде целого кодированного файла)
  2. blob URL (временная ссылка)

Первый способ отпадает по причине, что после закрытия браузера\приложения ссылка перестает быть действительной, второй способ не подходит по причине, что работа происходит с файлами от килобайт до 2-3мб и их может быть много.

Ответы

▲ 1Принят

Получить путь из полученного объекта путем drag-drop или через input область можно, но использовать его в дальнейшем не получится:

function displayPath(fileEntry) {
    chrome.fileSystem.getDisplayPath(fileEntry, function(path) {
        console.log(path)
        //Путь получили, но толку от него нет, создать из него создать объект File() нельзя. Мы можем сохранить копию файла в LocalStorage или внутренней FileSystem
        //Путь можем использовать только для удобства пользователя, показывать ему с чем он работает.
    });
}

В любом случае придется работать либо с indexedBD, LocalStorage, FileSystem.

Есть, конечно, одна тонкость, которую я расписал в этом своем похожем вопросе.