[ 
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)

Reply via email to