I'm using Cordova (5.4) to create apps for Android and Iphone. All goes fine, except I want to download images using the Cordova's plugin "FileTransfer" and I having some problems with the path.
If I use the FileTransfer like this:
uri = encodeURI('http://example.com/myImage.png'),
fileURL = '/sdcard/Download/' + 'myImage.png',
fileTransfer.download(
uri,
fileURL,
function (entry) {
console.log("download complete: " + entry.fullPath);
},
function (error) {
console.log(error);
},
false,
{
headers: {
"authorization": 'Bearer ' + token
}
}
);
This works fine. But I would want a path that worked on Android and Iphone, (not a static one) and if it could be, that the user could see this images directly in their gallery.
Checking the plugin description I tried:
fileURL = 'cdvfile://localhost/persistent/myImg.png'
But this fails with the FileTrasferError:
"/data/data/com.aco.plus/files/files/myImg.png: open failed: ENOTDIR (Not a directory)"
Checking answers around I tried also:
uri = encodeURI('http://example.com/myImage.png');
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
fileTransfer.download(
uri,
fileSystem.root.toURL() + '/' + 'myImg.png',
function (entry) {
console.log("download complete: " + entry.fullPath);
},
function (error) {
console.log(error);
},
false,
{
headers: {
"authorization": 'Bearer ' + token
}
}
);
});
And I got the same error.
I'm quite lost. Anyone knows what can I do? I'm quite sure that must be a better way to do it than static routes.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…