Wie, um wieder ein Bild mit Web-API-Get-Methode
Muss ich wieder ein Bild mit einer Web-API-Get-Methode. Der folgende code scheint zu funktionieren, außer dass ich diese Nachricht bekommen in der Fiddler ' s Bildansicht Fenster, "Diese Antwort ist verschlüsselt, aber nicht den Anspruch, ein Bild."
public HttpResponseMessage Get()
{
using (FileStream fs = new FileStream(filePath, FileMode.Open))
{
HttpResponseMessage response = new HttpResponseMessage();
response.Content = new StreamContent(fs);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
return response;
}
}
Sehe ich das gleiche Ergebnis in der Fiddler ' mit diesem code auch:
public HttpResponseMessage Get()
{
HttpResponseMessage response = new HttpResponseMessage();
Byte[] b = (GetImageByteArray());
response.Content = new ByteArrayContent(b);
response.Content.LoadIntoBufferAsync(b.Length).Wait();
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
return response;
}
Bekomme ich das gleiche Ergebnis wenn ich es benutze .das png-format.
Schätzen Ihre Hilfe,
Können Sie bitte ausführlich über GetImageByteArray () - Methode ? Auch sind Sie sicher, dass das Bild, das Sie Lesen, ist das jpeg / jpg-Bilddateien und nicht anderen format Bild ?
InformationsquelleAutor J.D. | 2016-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich das richtig verstehe, dann sind Sie zu Fragen, spezifische asp.net core. In ASP.net Kern HttpResponseMessage ist nicht ein Weg, Ergebnis der Art, wie wir verwendet zu tun ASP.net web-api-2.
In asp.net Kern ( WEB-API), die einfach so Aussehen.
Hinweis: Wie Sie erwähnen, dass in Fiddler Bildansicht sehen Sie Meldung wie dieser "seine Antwort ist codiert, aber nicht den Anspruch, ein Bild". da ASP.net Kern betrachten HttpResponseMessage als einfache Klasse und umwandeln in json oder xml.
Es ist besser, verwenden Sie die
File
überladen von Methoden die akzeptiert, dass ein stream, so dass Sie nicht brauchen, laden Sie das Bild in den Speicher des servers vor dem versenden.FileStream stream = File.Open(@"E:\\Test.jpg"); return File(stream, "image/jpeg");
oder noch einfacher:return PhysicalFile("@E:\\Test.jpg", "image/jpg");
github.com/aspnet/Mvc/blob/dev/src/...InformationsquelleAutor dotnetstep