asp.net - ASP .Net Web API以二进制形式下载图像

标签 asp.net rest asp.net-web-api

我想尝试使用Web API进行rest调用,但我希望响应是存储在数据库中的实际二进制图像,而不是JSON base64编码的字符串。有人对此有一些建议吗?

更新-
这是我最终实现的:

 HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
 result.Content = new StreamContent(new MemoryStream(profile.Avatar));
 result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
 result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
 result.Content.Headers.ContentDisposition.FileName = "avatar.png";
 return result;

最佳答案

您可以将响应内容设置为StreamContent对象:

        var fileStream = new FileStream(path, FileMode.Open);

        var resp = new HttpResponseMessage()
        {
            Content = new StreamContent(fileStream)
        };

        // Find the MIME type
        string mimeType = _extensions[Path.GetExtension(path)];
        resp.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);

关于asp.net - ASP .Net Web API以二进制形式下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491845/

相关文章:

Asp.net 身份电子邮件验证 token 无法识别

javascript - 使用 JavaScript 调用事件 click

c# - 如何使用 C# 为 OData 查询中指定的每个过滤器获取一组键/值对?

c# - 如何获取 List<object> 的单个值

java - OkHttp 不是以 UTF8 而是以百分比编码回复我

c# - 并发 Web api 请求以及如何处理 ASP.NET 核心中的状态

asp.net - Azure Web App - 限制对 API 管理的访问

angularjs - symfony2 REST,AngularJs access-Control-Allow-Origin

ajax - 通过 apache mod_proxy 路由 node.js 请求 : performance?

javascript - 在 react 应用程序中的页面加载期间加载配置数据