2016-08-02 2 views
3

Ich arbeite an einem React-Projekt und verwende das Cordova-Plug-In zum ersten Mal. Ich habe es richtig Bilder machen, aber jetzt möchte ich sie auf dem Gerät mit persistenten Speicher lokal speichern. Ich habe ziemlich gute Dokumentation gefunden, aber aus irgendeinem Grund kann dieser Code nicht funktionieren. Wenn jemand helfen könnte, würde ich es wirklich schätzen!resolveLocalFileSytemURL Rückgabe von FileError {code: 5}?

Hier ist meine Funktion:

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); 
 
     } 
 
    ); 
 
}

Hier ist ein Beispiel für die Pfade in der ich vorbei:

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

gibt diese im Inspektor:

FileError {code: 5}

+0

Fehlercode 5 bedeutet Codierungsfehler. Es könnte also ein mögliches Problem mit der Einstellung des Mime-Typs sein. Aber ich habe keinen Erfolg beim Versuch, auf Dateien in Android-Datenverzeichnis zuzugreifen. Also habe ich versucht, ein externes Datenverzeichnis zu verwenden. Für die Arbeit Beispiel von Speichern von Dateien, überprüfen Sie dies - https://github.com/gandhirajan/Cordova_File_Operations – Gandhi

Antwort

1

Wert von Pfad Android/data/com.id1b9kkvri4mj2dnqkf9p/cache/1470171102308.jpg sein sollte;

so braucht es eine kleine Änderung:

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

Vielen Dank für die Antwort! Ich habe es versucht und bekomme immer noch den gleichen Fehler. Irgendwelche anderen Ideen @Tuhin? – dpasie2

+0

HI Davina bitte überprüfen Sie, gehen Sie zum Gerät Dateispeicher und überprüfen Sie den Ordner Android/data/com.id1b9kkvri4mj2dnqkf9p/Cache Suche nach 1470171102308.jpg Datei verfügbar oder nicht. – Tuhin