从ActionResult作为返回类型的方法获取图像

时间:2014-07-01 09:13:16

标签: c# asp.net-mvc asp.net-web-api

我正在开发一个Web Api项目,并且我从MVC项目中的控制器获取图像。返回类型为ActionResult。 Web Api中的方法GetImage具有HttpResponseMessage作为返回类型:

public HttpResponseMessage GetImage() 
{
    var result = new HttpResponseMessage(HttpStatusCode.OK);
    ActionResult image = GetProductImage();
    // ? result.Content = image;
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
    return result;
}

有没有办法将ActionResult中的图像放入HttpResponseMessage? 另一个控制器中的代码如下所示(简化):

public ActionResult GetProductImage()
{
    byte[] bytes = GetImageFromDisk(fullImagePath);
    return File(bytes, "image/jpeg");
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

public HttpResponseMessage Image(int pIndice)
{    
    var response = new HttpResponseMessage(HttpStatusCode.OK);

    using (var binaryReader = new BinaryReader(requestFile[pIndice].InputStream))
    {
        response.Content = new ByteArrayContent(binaryReader.ReadBytes(requestFile[pIndice].ContentLength));
        response.Content.Headers.ContentType = new MediaTypeHeaderValue(requestFile[pIndice].ContentType ?? "image/jpeg");
    }
    return response; 
}