C# 从返回类型为ActionResult的方法获取图像
我在做一个WebAPI项目,我从一个MVC项目的控制器那里得到一个映像。返回类型为ActionResult。Web Api中的方法GetImage将HttpResponseMessage作为返回类型:C# 从返回类型为ActionResult的方法获取图像,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我在做一个WebAPI项目,我从一个MVC项目的控制器那里得到一个映像。返回类型为ActionResult。Web Api中的方法GetImage将HttpResponseMessage作为返回类型: public HttpResponseMessage GetImage() { var result = new HttpResponseMessage(HttpStatusCode.OK); ActionResult image = GetProductImage();
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");
}
谢谢您的帮助。检查此答案:谢谢您的提示,但我必须从另一个项目调用GetProductImage方法。在图像裁剪、缓存、水印等方面还有很多工作要做。。。。我不想重写一切。真的没有办法从ActionResult中获得图像吗?虽然这段代码可以回答这个问题,但提供关于这段代码为什么和/或如何回答这个问题的附加上下文可以提高其长期价值。此外,您应该尝试更好地格式化代码。
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;
}