Я использую Cordova 4.2.0 для Android.Ошибка записи файла FileTransfer Cordova (код 1)
У меня есть некоторые проблемы, чтобы получить FileTransfer plugin правильно работать. Я полагаю, что есть ошибка записи
exception:".myApp\/contentImages\/20150110220101.jpg: open failed: ENOENT (No such file or directory)"
имя файла ранее протестирована и еще не существует:
rootFS.getFile('.myApp/contentImages/'+file,{create:false},
function(){
console.log(file+' already exists');
},
function(error){
console.log(file+" does not exist locally");
console.log("Error #"+error.code);
download(file);
}
);
А вот функция загрузки:
function download (filename){
var localPath = rootFS.fullPath+'/.myApp/contentImages/'+filename;
var fileTransfer = new FileTransfer();
fileTransfer.download(
encodeURI('http://distantApp/contentImages/'+filename), // This file exists
localPath,
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function (error) {
console.log('download error: ' + error.code + ": "+error.exception+" ; source " + error.source+" ; target " + error.target);
}
);
}
Что может быть проблемой?
EDIT Код для rootFS
function onDeviceReady(){
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, function(){
console.log("error requesting LocalFileSystem");
});
}
function gotFS(fileSystem) {
console.log("got filesystem: "+fileSystem.name); // displays "persistent"
console.log(fileSystem.root.fullPath); // displays "/"
window.rootFS = fileSystem.root;
}
Вы пытались распечатать _localPath_, когда используете его? Это должен быть «cdvfile: // localhost/persistent/path/to/downloads /», и этот путь должен быть доступен для записи. Вы можете проверить доступные для записи пути из [File plugin] (https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md#android-file-system-layout). –
Я думаю, что это хорошая подсказка; Я получаю это: '//. MyApp/contentImages/image.jpg'. Поэтому я вернулся к «rootFS», и я редактировал вопрос. – Yako
Кажется, что модернизация Кордовы подразумевала замену '.fullPath' на' .toURL() '. Теперь я получаю 'файл: /// storage/emulated/0 //. MyApp/contentImages/image.jpg'. – Yako