Umwandeln Byte-array Base64-string in Angularjs
Ich bin immer byte-array im service die Antwort und das Bild würde in einem Bild gezeigt werden Bereich meiner html-Seite. Irgendeine Idee, wie kann ich dies umsetzen. Ich habe versucht, herauszufinden, die Lösung für dieses über stack overflow aber nicht in der Lage, gültige Lösung. Bitte helfen Sie. Mein code ist:
this.getPrescription = function(pres_id) {
var deff = $q.defer();
$http({
method: "GET",
url: "www.abc.com/api/&prescriptionOnly=false&page=1",
headers: {
'Authorization': 'Bearer ' + localStorage.getItem("chemist_access_token"),
'Content-Type': 'application/json'
},
responseType: 'arraybuffer'
}).then(function(objS) {
console.log("getPrescription:\n" + JSON.stringify(objS))
deff.resolve(objS);
}, function(objE) {
errorHandler.serverErrorhandler(objE);
deff.reject(objE);
});
return deff.promise;
};
und in meinem controller rufe ich gerne:
$scope.getPrescription = function(id) {
$ionicLoading.show({
template: '<ion-spinner icon="spiral"></ion-spinner>',
noBackdrop: false
});
serverRepo.prescriptionGet(id).then(function(objS) {
console.log("orderByCustomer:\n" + JSON.stringify(objS));
$scope.picdata=$window.URL.createObjectURL(new Blob([objS.data], {type: 'image/png'}));
$ionicLoading.hide();
console.log("getOrderByNew_success_loadMore:\n" +$scope.picdata);
}, function(objE) {
$ionicLoading.hide();
});
}
und wenn ich meine Konsole zeigt:
getOrderByNew_success_loadMore:
blob:file:///0aa86d9f-61a1-4049-b18c-7bf81e05909f
Veröffentlichen Sie Ihren code !
versuchen Sie, wie dieses <img src="data:image/jpg;base64,{{yourData}}" />
serverRepo.prescriptionGet(id).dann(function(objS) {$scope.picdata = objS.data;}, function(objE) { $ionicLoading.hide(); }); ich bin immer byte-array in objS.Daten und mit picData in meinem html wie: <img ng-src="data:image/JPEG;base64,{{picdata}}"/>
was die Anzeige picdata in der Konsole?
versuchen Sie, wie dieses <img src="data:image/jpg;base64,{{yourData}}" />
serverRepo.prescriptionGet(id).dann(function(objS) {$scope.picdata = objS.data;}, function(objE) { $ionicLoading.hide(); }); ich bin immer byte-array in objS.Daten und mit picData in meinem html wie: <img ng-src="data:image/JPEG;base64,{{picdata}}"/>
was die Anzeige picdata in der Konsole?
InformationsquelleAutor Anjaney Mishra | 2016-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diesen filter, umwandeln byte-array base64 -
binden es als Bild verwenden
Oder wenn Sie müssen, weisen Sie es einer Variablen verwenden
InformationsquelleAutor Nair Athul
Wenn Sie brauchen, um die Anzeige und das Bild von byte-Arrays Sie können ein Objekt erstellen, das mithilfe von Blob-und bekommen es, die URL zu übergeben, die in die image-Tags Quelle. Der Letzte parameter, die in einem Blob-Konstruktor enthält Informationen über blob-Typ, so sollten Sie die richtige Art während der blob Schöpfung.
Und wenn Sie nicht Vorhaben, mit Ihrem Objekt mehr (z.B. nach Bild geladen wurde, in die entsprechenden img-tag)
Update
Alternative Lösung mit base64
Vergaß hinzuzufügen, responseType-parameter in get-Anfrage
$http.get(url, {responseType: 'arraybuffer'})
Ich habe responseType in meinem Dienst rufen, aber die URL, die ich wieder nicht angezeigt wird Bild-in <img>
Sind Sie sicher, dass Sie Hinzugefügt {responseType: 'arraybuffer'} , $http.Holen Sie sich nennen und nicht zu prescriptionGet? Und überprüfen Sie Ihre browser-Konsole, um zu sehen, ob irgendwelche Fehler aufgelaufenen.
Ich änderungen in meiner Frage.Meine code in Frage. Bitte überprüfen Sie und lassen Sie mich wissen, wo ich bin, Begehen Fehler.
InformationsquelleAutor k10der