2016-06-09 10 views
0

Ich baue eine kleine Hybrid-App. Ich habe die cordova-base64-to-gallery plugin verwendet, um ein base64-Bild von einem zugeschnittenen Bild (mit Croppie) in eine PNG-Datei zu konvertieren, die dann im Bilderordner in der Bildergalerie des Telefons gespeichert wird. Das Speichern der base64-Zeichenfolge in einem Bild funktioniert bisher gut und ich kann es in der Bildergalerie sehen. Aber mein Problem ist, wie dieses Bild zu kopieren, die gibt den Pfad als /storage/emulated/0/Pictures/img_imageFile.png zum cordova.file.dataDirectoryngCordova file plugin verwenden.Kopiere Bilddatei von/storage/emuliert/0/Bilder in ein anderes Verzeichnis in Cordova

Hier ist mein AngularJS Code

// Beginning the conversion process... 
cordova.base64ToGallery(base64ImageString, { 
              prefix : 'img_', 
              mediaScanner : true 
              }, 

    function (path) { 
     //path = /storage/emulated/0/Pictures/img_imageFile.png 
     //console.log(path); 
     var sourceDirectory = path.substring(0, path.lastIndexOf('/') + 1); 
     var sourceFileName = path.substring(path.lastIndexOf('/') + 1, path.length); 

     $cordovaFile.copyFile(sourceDirectory, sourceFileName, cordova.file.dataDirectory).then(function (success) { 
      //$scope.profileImage = cordova.file.dataDirectory + sourceFileName; 
      alert("Request Successfully Completed"); 
     }, function (error) { 
      console.dir(error); 
      alert("Error: " + error); // returns Error: [object Object] 
     }); 

    }, function (err) { 
      console.error(err);        
    }); 
}); 

ich mit Onsen2 arbeite, Cordova6.2.0, cordova-Plugin-Datei 4.2.0, android 6

Ich bin noch recht neu und wird erkennen, jede Lösungen für mein Problem oder besser Ansatz. Danke :)

Antwort

1

Ich fand es! Nach Stunden des Experimentierens und Googelns fand ich ein weiteres Plugin (Cordova saveImageGallery on Github), das eigentlich eine Verbesserung des vorherigen ist, das ich benutzte. Hier ist mein Code für die Bedürftigen, obwohl Sie

mehr von der Seite des Plug-Ins erhalten können
var params = {data: base64ImageString, prefix: 'img_', format: 'JPG', quality: 80, mediaScanner: true}; 
window.imageSaver.saveBase64Image(params, 

    function (filePath) { 
     //console.log('File saved on ' + filePath) = file:///storage/emulated/0/Pictures/img_imageFile.png 
     var sourceDirectory = filePath.substring(0, filePath.lastIndexOf('/') + 1); 
     var sourceFileName = filePath.substring(filePath.lastIndexOf('/') + 1, filePath.length); 

     $cordovaFile.copyFile(sourceDirectory, sourceFileName, cordova.file.dataDirectory).then(function (success) { 
      alert("Request Successfully Completed"); 
     }, function (error) { 
     console.dir(error); 
     alert("Error: " + error); 
     }); 
    }, 
    function (msg) { 
     console.error(msg); 
    } 
); 

Denken Sie daran, das Plugin zuerst zu installieren. Vielen Dank an alle, die versucht haben, dies zu untersuchen :)