如何使用文件传输下载离子和cordova中的文件(只读文件系统错误)

时间:2016-04-18 11:58:59

标签: cordova ionic-framework

我是cordova和ion的新人

我想从服务器下载音频文件

我的离子版本是:1.7.14

我的cordova版本是:6.1.1

我的Android版本是:6(我使用加密模式)

这是我的代码:

$scope.DownloadFile = function (url, filename) {

 var ft = new FileTransfer();
   var source = encodeURI('http://' + url + filename);
   var targetPath = cordova.file.documentsDirectory + filename;//change path as you need
   var trustHosts = true;//optional
   var options = {};//optional
   ionic.Platform.ready(function () {//device prepared
     ft.download(source, targetPath, function (entry) {
       alert('success' + JSON.stringify(entry));
     }, function (err) {
       alert(url + filename);
       alert(JSON.stringify(err));
     }, trustHosts, options);
   });
}

我得到了这个结果:

{"code":1 , "source":"http://sedaban.com/sedaban/users/json/app/mobile/download/146012022293952.mp3","target":"null146012022293952.mp3","http_status":200,"body":null,"exception":"/null146012022293952.mp3:open failed: EROFS (Read-only file system)"}

1 个答案:

答案 0 :(得分:1)

cordova.file.documentsDirectory对Android无效。

这是cordova文件插件github中提到的描述 - " cordova.file.documentsDirectory - 应用程序专用的文件,但对其他应用程序(例如Office文件)有意义。请注意,对于OSX,这是用户的〜/ Documents目录。 (iOS,OSX)"

试用适用于Android的cordova.file.externalDataDirectory或cordova.file.externalRootDirectory。希望它有所帮助