2017-08-19 2 views
0

Ich möchte ein Bild mit meinen JSON-Daten als eine Antwort von Server (Nodejs) an Client-Seite (AngularJs) senden. Ich habe Antworten gesehen, wie das Senden von Bildern als JSON, aber das Senden von Daten als Session-Cookie, aber sie waren nicht zufriedenstellend genug. Was ist der beste Weg, um ein Bild zu senden? Wie das Bild im JPG-oder PNG-Format oder sendet seinen absoluten Pfad und der Client lädt es herunter?Bild als Antwort und seine Details mit nodejs

Zweitens möchte ich fragen, gibt es trotzdem ich kann das Bild mit meiner Antwort einbetten und es unter der Annahme, dass es nur ein Bild und Platz wird kein Problem sein, wenn ja, wie kann ich das tun?

Antwort

1

Leider habe ich nicht die Syntax für Nodejs aber glauben, dass das Konzept gleich bleiben wird. Hier ist, was ich tue:

definieren, dass die Funktion GET zur Herstellung von „image/*“ zum Beispiel fähig ist:

@GET 
@Produces("image/*") 
public Response getImage() { 
    String image = "scroll0015.jpg"; 
    File f = new File(image); 
    if (!f.exists()) { 
     throw new WebApplicationException(404); 
    } 
    String mt = new MimetypesFileTypeMap().getContentType(f); 
    return Response.ok(f, mt).build(); 
} 

Und dann, während Sie die Antwort konstruieren sagen Sie in den Antwort-Header Welchen Inhalt der Datei senden Sie?

1) Wenn Ihr Benutzer/Client auf einen freigegebenen Standort zugreifen kann, ist es eine gute Idee, auf die neue URL zu verweisen. zum Beispiel mit Amazon S3.

2) ändert sich Ihr Bild häufig? Lassen Sie den Benutzer es zwischenspeichern.

3) Wenn Ihre Server die Last des Sendens der Bilder gut und gut tragen können, verwenden Sie andernfalls den Cloud-Dienst.

+0

Sie versuchen zu sagen, dass wir ein ganzes Bild in der Antwort zusammen mit JSON-Daten senden können? – Asim

+0

Ja, der Code, den ich in Java eingegeben habe - Jersey REST macht das – Geek

0

Konvertieren Sie Ihr Image in Base64 in Ihrer NodeJS-Anwendung und senden Sie dann die Base64-Antwort an den Client (AngularJS). https://www.npmjs.com/package/base64-img

+0

Die Dokumentation sagt nichts darüber aus, wie es in eckigen angezeigt wird. – Asim

+0

Setzen Sie die Antwort innerhalb des Tags img. –

Verwandte Themen