2016-05-17 82 views
1

I'm下载的图像与此代码的本地存储:科尔多瓦文件传输节目下载图像

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路径)。图像被下载,保存并显示在前端。

与下载成功的iOS功能调用和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您正在使用科尔多瓦文件插件

你应该保存在$范围内的道路,这样你就可以把它添加到您的HTML

在您的控制器:

$scope.path = cordova.file.dataDirectory 

而在你的HTML

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

谢谢!我不知道重新启动后UUID是否重新计算。谢谢! – m1crdy

+0

您可以删除upvote并只让接受的答案好吗?我想赢得徽章:) – Del

+0

您需要先编辑 – m1crdy