2016-04-13 8 views
0

Ich möchte das Bild erfassen und nach der Erfassung sollte auf den Server hochgeladen werden und wollen das gleiche vom Server abrufen und in angezeigt werden soll ein Ort, dh $scope.pictureUrl="http://placehold.it/100x100". Ähnlich möchte ich Bild aus der Galerie auswählen und auf den Server hochladen, aber mein Code funktioniert nicht.
Also unten ist mein Code. Ich habe bereits viele Fragen dazu auf stackoverflow aber vergeblich verwiesen. Es gibt Erfolgsalarm, aber wenn ich meinen Server sehe, zeigt es kein hochgeladenes Bild an. Bitte schlagen Sie mir die Änderungen vor.Bild erfassen und auf Server hochladen und holen von Server funktioniert nicht in angular js und ionischen

$scope.pictureUrl = "http://placehold.it/100x100"; 
    $scope.pictureUrl2="http://placehold.it/100x100"; 

    $scope.takePicture = function() { 
     var options = { 
      destinationType: Camera.DestinationType.DATA_URL, 
      sourceType: Camera.PictureSourceType.CAMERA, 
      encodingType: Camera.EncodingType.JPEG 
     }; 
     $cordovaCamera.getPicture(options).then(function (imageData) { 
      //console.log('camera data: ' + angular.toJSON(imageData)); 
      $scope.imgdata = imageData; 
      $scope.pictureUrl = 'data:image/jpeg;base64,' + imageData; 
     // var image = document.getElementById('myImage'); 
      var url = ''; 
      var fd = new FormData(); 

      //previously I had this 
      //angular.forEach($scope.files, function(file){ 
      //fd.append('image',file) 
      //}); 

      fd.append('image', $scope.imgdata); 

      $http.post(url, fd, { 

        transformRequest: angular.identity, 
        headers: { 
         'Content-Type': undefined 
        } 
       }) 
       .success(function (data, status, headers) { 
        $scope.pictureUrl2 = data.resource_uri; //set it to the response we get 
       alert("Success"); 
       }) 
       .error(function (data, status, headers) { 

       }) 

     }); 
    } 

    $scope.takePhoto = function() { 
    var options = { 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM, 
     encodingType: Camera.EncodingType.JPEG 
    }; 
    $cordovaCamera.getPicture(options).then(function (imageData) { 
     $scope.imgdata=imageData; 
     $scope.pictureUrl = 'data:image/jpeg;base64,' + imageData; 
     //$scope.blobImg = dataURItoBlob($scope.pictureUrl); 
     window.alert("Picture Captured .. !!"); 
    }, function (err) { 
     window.alert('Error:' + err.message); 
    }); 
    }; 

Plugins sind properly.Camera und Galerie installiert initiieren, aber nicht in der Lage zu laden :(

+0

* anzeigen können "Bilderfassung und -upload auf Server und Abruf von Server funktioniert nicht in eckigen js und ionischen" * - welcher Teil davon funktioniert nicht? Kannst du das aufteilen und versuchen, eins nach dem anderen zu machen? –

+0

okay, wenn ich brechen will .. dann funktioniert der Upload-Teil nicht nach der Aufnahme des Bildes von der Kamera. es zeigt Erfolg, aber tatsächlich ist es nicht auf Server hochgeladen –

+0

@Siddhesh Kalgaonkar senden Sie das Bild in Base64 Formatate –

Antwort

0

Eigentlich sind Sie mit Zieltyp als

destinationType: Camera.DestinationType.DATA_URL,

So in imagedata enthält nur base64-Werte, so dass Sie diesen Wert Ihrem Objekt zuweisen können und für die Post-Methode verwenden können

Wenn Sie die Daten von base64 vom Server

'data:image/jpeg;base64,' + imageData; (Hinweis hier imagedata ist die Variable, die Base64-Zeichenfolge enthält) zu erhalten versuchen

Auf diese Weise wir Bild vom Server

Verwandte Themen