Wie die Anzeige empfangene Bild als byte-array in Angular JS
Ich habe eine server-seitige Anwendung, dass wird wieder ein Bild. Dies sind die Antwort-Header:
Content-Disposition: attachment; filename=8822a009-944e-43f4-999b-d297198d302a;1.0_low-res
Content-Length: 502343
Content-Type: image/png
Date: Mon, 03 Aug 2015 19:13:39 GMT
Server: Apache-Coyote/1.1
In Winkel, die ich brauche, um das Bild anzuzeigen. Wenn immer das Bild, ich benutze die angularJS $http
für den server aufrufen, und das Ergebnis im Rahmen, aber ich nie erreichen, den Erfolg Funktion $http
. Die Ausführung dieser Aufruf vom Briefträger gibt das Bild normalerweise. Ich bin neugierig, wie man Eckige, um das Bild anzuzeigen.
Dies ist, wie ich das Bild angezeigt:
<img ng-src={{image}} />
Hier ist der Aufruf, um das image vom server:
$http.get(url, {responseType: "arraybuffer"})
.success(function(data) {
$scope.image= data;
}
)
- Können Sie nach dem $http-Aufruf an den server?
- Jup, hier ist Sie: ` $http.get(url, {responseType: "arraybuffer"} ). success(function(data) { $scope.Bild= data; }) `
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Stimme mit Bellu ' s Antwort, dass Sie sollten mit den
.then
- Funktion, anstatt die.success
Funktion auf das Versprechen zurück von der$http.get
. Aber ich könnte mir vorstellen, dass Sie noch immer ein Problem mit Ihrerng-src
Referenz, Sie sind nicht gemacht, es mit einem URL, aber anstatt eine Referenz zu Ihrem byte-array.Binden
ng-src
Referenz auf ein byte-array im Speicher gehalten auf dem client, Ihre Bindung sollte folgende form:Bearbeiten
Da ich nie erwähnt es explizit, die
ng-src
Bindung oben wird davon ausgegangen, dass Ihre Bild-Daten werden im base64-format. HarrisonA sofern eine Methode unten, um zu konvertieren das array, wenn Sie nicht bereits im base64-format.Wollte nur hinzufügen, um jdmcnair Antwort und Loshmeey Kommentar:
Unten ist ein link zu der Funktion, die ich verwendet, um zu konvertieren das array buffer in einer base-64-Zeichenfolge.
ArrayBuffer-zu base64-codierte string
Funktion:
Habe ich diese Funktion in meinem Winkel-controller und dann an das Ergebnis (verwendet ein $scope-variable), um die img-element in meine html-Datei.
Dokumentation Sie sagen, dass die Erfolg Rückruf wurde
veraltet.
Nach diesen überlegungen, könnten Sie versuchen, so etwas wie dieses.