2016-05-17 3 views
1

I'm загрузки изображения на локальном хранилище с этим кодом:Кордова FileTransfer показать загруженное изображение

function saveImageToPhone(url, file) { 

    var plat = device.platform; 
    var deferred = $q.defer(); 
    var url = url; 
    if(plat == "iOS"){ 
     var filePath = cordova.file.dataDirectory + "files/img/" +file; 
    }else{ 
     var filePath = cordova.file.applicationStorageDirectory + "files/img/" +file; 
    } 

    var fileTransfer = new FileTransfer(); 
    var uri = encodeURI(url); 

    fileTransfer.download(
     uri, 
     filePath, 
     function(entry) { 
     console.log(entry); 
     deferred.resolve(); 

     }, 
     function(error) { 
     console.log("error"); 
     deferred.resolve(); 

     }, 
     true 
    ); 

    return deferred.promise; 
    } 

I'm отображения изображения с:

<img src="file:///var/mobile/Containers/Data/Application/0C911347-00D1-4133-9186-D9653E64B572/Library/NoCloud/files/img/{{myimagename}}.jpg"> 

Приведенный выше код работает отлично в android (с другим src-path). Изображение загружается, сохраняется и отображается во фронте.

С прошивкой при загрузке функция успеха называется и Xcode отладчик показывает мне положительный ответ:

{"isFile":true,"isDirectory":false,"name":"3866938200000.1.jpg","fullPath":"/files/img/3866938200000.1.jpg","filesystem":"<FileSystem: library-nosync>","nativeURL":"file:///var/mobile/Containers/Data/Application/2A84F1F2-56D7-419A-B915-905C32FE851C/Library/NoCloud/files/img/3866938200000.1.jpg"} 

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

Заранее спасибо

+0

Я видел, что этот идентификатор «0C911347-00D1-4133-9186-D9653E64B572» не то же самое после нового запуска приложения. Есть ли способ, чтобы этот идентификатор был постоянным? – m1crdy

ответ

2

Я seeying, что вы используете Cordova файл плагина

Вы должны сохранить путь в $ объеме, так что вы можете добавить его в HTML

В контроллере :

$scope.path = cordova.file.dataDirectory 

И в вашем HTML

<img src="{{path}}Library/NoCloud/files/img/{{myimagename}}.jpg"> 
+0

Спасибо! Я не знал, что UUID пересчитывается после перезапуска. Благодаря! – m1crdy

+0

Можете ли вы удалить верхнюю планку и разрешить только принятый ответ? Я хочу выиграть значок :) – Del

+0

Сначала необходимо отредактировать – m1crdy

Смежные вопросы