Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-6148

wrong filesystem properties in entry after moveTo()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.4.0
    • None
    • cordova-plugin-file
    • None
    • iOS6
      iOS7

    Description

      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:

      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: '/'
      

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

      Shortened pseudo code:
      // ... 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)
        {
          // ...
        }
      }
      

      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)

      Attachments

        Issue Links

          Activity

            People

              iclelland Ian Clelland
              dombn Dominik Pesch
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: