[ https://issues.apache.org/jira/browse/CB-6148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ian Clelland resolved CB-6148. ------------------------------ Resolution: Fixed I've committed a new set of mobile spec tests and the fix for this issue on iOS and Android. Try out the dev branch of cordova-plugin-file, and let me know if this fails for you at all. > wrong filesystem properties in entry after moveTo() > --------------------------------------------------- > > Key: CB-6148 > URL: https://issues.apache.org/jira/browse/CB-6148 > Project: Apache Cordova > Issue Type: Bug > Components: Plugin File > Affects Versions: 3.4.0 > Environment: iOS6 > iOS7 > Reporter: Dominik Pesch > Assignee: Ian Clelland > > To store pictures persistent in our app, we move the image files from the > temporary folder to the persistent folder. The code breaks after upgrading to > Cordova 3.4.0 and file plugin 1.0.0 (and 1.0.1). > We've found that the filesystem object in the moveTo success callback entry > parameter has got wrong value (please notice pseudo code below). > Below you'll see the Xcode log output: > {noformat} > 2014-03-02 21:31:43.672 Finanzchecker[509:907] fileSys.name: persistent > 2014-03-02 21:31:43.682 Finanzchecker[509:907] fileSys.root.name: / > 2014-03-02 21:31:43.687 Finanzchecker[509:907] fileSys.root.fullPath: / > 2014-03-02 21:31:43.717 Finanzchecker[509:907] dir.name: pics > 2014-03-02 21:31:43.726 Finanzchecker[509:907] dir.fullPath: /pics/ > 2014-03-02 21:31:43.778 Finanzchecker[509:907] newFileEntry.name: > pic1393792303602.jpg > 2014-03-02 21:31:43.784 Finanzchecker[509:907] newFileEntry.fullPath: > /pics/pic1393792303602.jpg > 2014-03-02 21:31:43.796 Finanzchecker[509:907] newFileEntry.nativeURL: > file:///var/mobile/Applications/82A8A0EF-8012-4D7E-B78D-EA3A4C2B7CBF/Documents/pics/pic1393792303602.jpg > 2014-03-02 21:31:43.802 Finanzchecker[509:907] newFileEntry.toURL(): > cdvfile://localhost/temporary/pics/pic1393792303602.jpg > 2014-03-02 21:31:43.815 Finanzchecker[509:907] newFileEntry.filesystem.name: > temporary > 2014-03-02 21:31:43.820 Finanzchecker[509:907] > newFileEntry.filesystem.root.name: '/' > 2014-03-02 21:31:43.820 Finanzchecker[509:907] > newFileEntry.filesystem.root.fullPath: '/' > {noformat} > *Our problem:* > We had expected that newFileEntry.filesystem.name has to be 'persistent' > (instead it is 'temporary') . newFileEntry.toURL returns the wrong cdvfile > URL (please see Xcode output above). > {code:JavaScript|title=Shortened pseudo code:|borderStyle=solid} > // ... will be called from navigator.camera.getPicture(...) > function picSuccess(imageUrl) > { > window.resolveLocalFileSystemURL(imageUrl, _fileEntrySuccess, > _handleFileError); > function _fileEntrySuccess(tmpFileEntry) > { > var newFileName = "pic" + new Date().getTime() + '.jpg'; > window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) > { > console.log("fileSys.name: " + fileSys.name); > console.log("fileSys.root.name: " + fileSys.root.name); > console.log("fileSys.root.fullPath: " + fileSys.root.fullPath); > fileSys.root.getDirectory("pics", { create: true, exclusive: false }, > function(dir) > { > console.log("dir.name: " + dir.name); > console.log("dir.fullPath: " + dir.fullPath); > tmpFileEntry.moveTo(dir, newFileName, function(newFileEntry) > { > console.log("newFileEntry.name: " + newFileEntry.name); > console.log("newFileEntry.fullPath: " + newFileEntry.fullPath); > console.log("newFileEntry.nativeURL: " + newFileEntry.nativeURL); > console.log("newFileEntry.toURL(): " + newFileEntry.toURL()); > console.log("newFileEntry.filesystem.name: " + > newFileEntry.filesystem.name); > console.log("newFileEntry.filesystem.fullPath: " + > newFileEntry.filesystem.fullPath); > _fileMovedSuccess(newFileEntry); > }, _handleFileError) > }) > }, > _handleFileError); > } > function _fileMovedSuccess(entry) > { > // ... > } > } > {code} > We've tested this with Cordova 3.4.0 and cordova file plugin 1.0.0 and 1.0.1 > (https://github.com/apache/cordova-plugin-file.git > 21e119692ab9c9fb2912dc69e2c6d4b05307e3e2). > // corrected the example (some typos) -- This message was sent by Atlassian JIRA (v6.2#6252)