Meteor Cordova FileTransfer.download错误CONNECTION_ERR

时间:2015-03-03 21:49:40

标签: cordova meteor

我正在尝试从外部服务器下载文件并将其本地保存到andriod的设备存储中。我正在使用:

var downloadFile = function () {

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
        var dir = fs.root.getDirectory("appImages", {create: true, exclusive: false}, function (dirEntry) {
            var file = dirEntry.getFile("image.png", {create: true, exclusive: false}, function (fileEntry) {
                var filePath = fileEntry.toURL();
                var fileTransfer = new FileTransfer();
                console.log('starting file download: ' + "https://www.google.com/images/srpr/logo11w.png" + ' to ' + filePath);
            fileTransfer.download(
                "https://www.google.com/images/srpr/logo11w.png",
                filePath,
                function () {
                    console.log('save');
                },
                function (error) {
                    console.log('failed to save image: ' + filePath + ' (error: ' + error.http_status + ')');
                    console.log(JSON.stringify(error));
                },
                true
            );
            });
        }, function (error) {
            console.log(JSON.stringify(error));
        });
    }, function (error) {
        console.log(JSON.stringify(error));
    });

};

我收到错误:

I20150303-14:44:20.104(-7) (android:http://meteor.local/test.js:55) starting file download: https://www.google.com/images/srpr/logo11w.png to file:///storage/emulated/0/appImages/image.png
I20150303-14:44:20.104(-7) (android:http://meteor.local/test.js:69) failed to save image: file:///storage/emulated/0/appImages/image.png (error: 401)
I20150303-14:44:20.104(-7) (android:http://meteor.local/test.js:70) {"code":3,"source":"https://www.google.com/images/srpr/logo11w.png","target":"file:///storage/emulated/0/appImages/image.png","http_status":401,"body":null,"exception":null}

创建了文件路径,然后我可以浏览到/appImages并查看是否存在损坏的image.png。在我的AndroidManifest.xml我也有:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" /

我的设备也连接到互联网。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

这个问题让我疯了但我终于明白了。我使用的是一种与流星不兼容的文件传输版本。没有用的版本是0.5.0,而是使用版本0.4.3,现在一切都很好,

已删除:meteor remove cordova:org.apache.cordova.file-transfer@0.5.0

已添加:meteor add cordova:org.apache.cordova.file-transfer@0.4.3

现在所有事情都是可疑的。

答案 1 :(得分:0)

这个问题的原因很少。

1-没有互联网连接或连接到wifi。

2- AndroidManifest.xml中没有互联网权限

<uses-permission android:name="android.permission.INTERNET" />