Using asp.net core web api, I want to have my controller action method to return an jpeg image stream.
In my current implementation, browser displays only a json string.
My expectation is to see the image in the browser.
While debugging using chrome developer tools I found that the content type is still
Content-Type:application/json; charset=utf-8
returned in the response header, even though in my code I manually set the content type to "image/jpeg".
Looking for a solution My Web API is as below
[HttpGet]
public async Task<HttpResponseMessage> Get()
{
var image = System.IO.File.OpenRead("C:\test
andom_image.jpeg");
var stream = new MemoryStream();
image.CopyTo(stream);
stream.Position = 0;
result.Content = new StreamContent(image);
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "random_image.jpeg";
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
result.Content.Headers.ContentLength = stream.Length;
return result;
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…