我正在尝试从外部服务器下载文件并将其本地保存到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" /
我的设备也连接到互联网。谢谢你的帮助!
答案 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" />