Учитывая полный путь к файлу, как вы используете новый файловый плагин Cordova?

Файловый плагин Cordova хорошо задокументирован здесь: http://ngcordova.com/docs/plugins/file/< /а>

Проблема, с которой я сталкиваюсь, заключается в том, что для методов часто требуется объект FileSystem и строка, представляющая имя файла. Однако у меня есть полный путь к файлу, который может быть из любого читаемого файла FileSystem. На самом деле путь к файлу извлекается с помощью плагина камеры Cordova ( http://ngcordova.com/docs/plugins/camera/), используя тип назначения Camera.DestinationType.FILE_URI.

С учетом сказанного, как мне вызвать метод readAsBinaryString(FileSystem, fileName) только с полностью разрешенным путем к файлу?


person Tunji_D    schedule 04.11.2015    source источник


Ответы (1)


Возможно, вы ищете window.resolveLocalFileSystemURL. Плагин File использует для своей работы некоторые вызовы html5.

Вот пример из метода импорта документов, который у меня есть. (Это очень упрощено; полный файл находится здесь, если вам болезненно любопытно: https://github.com/adapt-it/adapt-it-mobile/blob/master/www/js/views/DocumentViews.js)

importFile = function (file, project) {
    var reader = new FileReader();
    reader.onloadend = function (e) {
        // do your parsing here
    };
    reader.readAsText(file);
}

window.resolveLocalFileSystemURL(fileURL,
    function (entry) {
        entry.file(
            function (file) {
                importFile(file);
            },
            function (error) {
                console.log("FileEntry.file error: " + error.code);
            }
        );
    },
    function (error) {
        console.log("resolveLocalFileSystemURL error: " + error.code);
    });

У Рэймона Камдена также есть отличная серия блогов, объясняющая детали файлового API в связи с Cordova. Вот пример чтения файла: http://www.raymondcamden.com/2014/07/15/Cordova-Sample-Reading-a-text-file.

person eb1    schedule 04.11.2015
comment
Спасибо, особенно за объект FileReader, у него есть необходимый метод readAsBinaryString(file). - person Tunji_D; 04.11.2015