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即可。