Cordova FileTransfer Error de escritura (Código 1)
Estoy usando Cordova 4.2.0 para Android.
Tengo algunos problemas para conseguir que el plugin de FileTransfer funcione correctamente. Supongo que hay un error de escritura
- ¿Cómo puedo detectar si una aplicación está instalada en un dispositivo Android desde una página web
- Adición de filas a una base de datos sqlite mediante un bucle (Phonegap)
- ¿Qué tabletas Android se pueden utilizar para probar aplicaciones web pesadas de Javascript
- Comportamiento inesperado de window.innerwidth
- Cómo obtener acceso a la API de phonegap desde una página remota
exception:".myApp\/contentImages\/20150110220101.jpg: open failed: ENOENT (No such file or directory)"
filename fue probado previamente y aún no existe:
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); } );
Y aquí está la función de descarga:
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); } ); }
¿Cual podría ser el problema?
Código EDIT para 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; }
- Error de seguridad con iframe
- Android Webview: Ejecución de javascript desde el método java llamado desde javascript
- Phonegap Cordova - Barra de estado negra en la parte inferior después de la pantalla completa
- La reproducción automática de mediaelement.js no funciona en dispositivos móviles
- ¿Hay alguna manera de invocar la navegación desde un navegador móvil?
- Aplicación de Android utilizando Webview / javascript. Lo que puede ser preocupación de seguridad?
- Establecimiento de una vista adecuada, compatible con ios & android, que funciona con la rotación
- El evento JavaScript touchend no se disparará en Android
El problema fue causado por una actualización de Cordova de una versión anterior.
La ruta de acceso de los archivos locales no fue correctamente identificada: .fullPath
ahora está obsoleto y debe ser reemplazado por .toURL()
.
Creo que tu problema no es con el complemento FileTransfer, sino con la forma en que estás intentando comprobar si el archivo existe.
Mirando aquí: http://www.html5rocks.com/en/tutorials/file/filesystem/ veremos que el acceso a un archivo que su padre inmediatamente no existe plantea una excepción:
Dentro de la devolución de llamada, podemos llamar a fs.root.getFile () con el nombre del archivo que se va a crear. Puede pasar una ruta absoluta o relativa, pero debe ser válida. Por ejemplo, es un error intentar crear un archivo cuyo padre inmediato no existe.
Me pregunto si el problema es que los padres de su archivo no existen. En este caso, las carpetas .myapp y contentImages.