2016-08-02 99 views
3

我正在開發一個React項目,我第一次使用Cordova插件。我已經正確拍攝了照片,但現在我想使用持久存儲將它們本地存儲在設備上。我發現相當不錯的文檔,但出於某種原因無法使此代碼正常工作。如果有人可以幫助,我會非常感激!resolveLocalFileSytemURL返回FileError {code:5}?

這裏是我的功能:

takePicture() { 
 
    navigator.camera.getPicture(
 
     imageData => { 
 
      this.setState({image: imageData}); 
 

 
      let path = 'filesystem:' + imageData; 
 

 
      window.resolveLocalFileSystemURL(
 
       path, 
 
       (entry) => { 
 
        window.requestFileSystem(
 
         LocalFileSystem.PERSISTENT, 
 
         50 * 1024 * 1024, 
 
         (fileSys) => { 
 
          //The folder is created if doesn't exist 
 
          fileSys.root.getDirectory(
 
           'Observation Photos', 
 
           {create:true, exclusive: false}, 
 
           directory => { 
 
            let d = new Date(), 
 
             n = d.getTime(), 
 
             filename = n + '.jpg'; 
 
            entry.moveTo(directory, filename, (entry) => { 
 
             Photos.insert(entry); 
 
            }, handleError); 
 
           }, 
 
           handleError 
 
          ); 
 
         }, 
 
         handleError 
 
        ); 
 
       }, (error) => { 
 
        console.log(error); 
 
       } 
 
      ); 
 
     }, message => { 
 
      console.log(message); 
 
     } 
 
    ); 
 
}

這裏是我的傳遞路徑的一個例子:

filesystem:file:///storage/emulated/0/Android/data/com.id1b9kkvri4mj2dnqkf9p/cache/1470171102308.jpg

返回此在檢查:路徑

FileError {code: 5}

+0

錯誤代碼編碼誤差5級的裝置。所以這可能是設置MIME類型的一個可能的問題。但是,在嘗試訪問Android數據目錄中的任何文件時,我沒有獲得成功。所以我嘗試使用外部數據目錄。對於保存文件的工作示例,請查看 - https://github.com/gandhirajan/Cordova_File_Operations – Gandhi

回答

1

值應爲Android/data/com.id1b9kkvri4mj2dnqkf9p/cache/1470171102308.jpg;

因此它需要一個小的變化:

let path = imageData.replace("file:///storage/emulated/0/",""); 
+0

感謝您的回覆!我試過了,仍然收到相同的錯誤。任何其他想法@Tuhin? – dpasie2

+0

HI Davina請檢查,進入設備文件存儲並檢查文件夾Android/data/com.id1b9kkvri4mj2dnqkf9p /緩存搜索1470171102308.jpg文件是否可用。 – Tuhin