ASP.NET WebAPI中返回文件

在ASP.NET WebAPI中返回文件,主要是直接返回图片和excel、word、pdf等文件

返回类型可以使用HttpResponseMessage和IHttpActionResult返回,下面返回图片和文件两个例子,可以融会贯通、灵活使用。

1、HttpResponseMessage返回图片

HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
using (Image img = Image.FromStream(file.Content))
using (MemoryStream ms = new MemoryStream())
{
     img.Save(ms, ImageFormat.Jpeg);
     result.Content = new ByteArrayContent(ms.ToArray());
     result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
     return result;
}

备注:file.Content是图片stream。

2、IHttpActionResult返回文件

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(new MemoryStream(bytes));
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
    FileName = "101.xlsx"
};
return ResponseMessage(response);

备注:bytes是文件byte[],同时也可以使用HttpResponseMessage返回(return response)。

以上两个示例可以灵活使用,定义MediaType即可。

posted @ 2022-07-13 11:25  yuejin  阅读(2449)  评论(0编辑  收藏  举报