[
https://issues.apache.org/jira/browse/CB-6148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ian Clelland reassigned CB-6148:
--------------------------------
Assignee: Ian Clelland
> 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)