我想try 使用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相关问答推荐

如何在 Javascript 中获取 C# 枚举

如何在 C# 代码中获取当前项目名称?

如何调试 Azure 500 内部服务器错误

ASP.NET 如何将控件呈现为 HTML?

更改 GridView 中列的标题文本

Anti-Forgery Token 适用于不同的基于声明的用户

如何将 Castle Windsor 与 ASP.Net Web 表单一起使用?

__doPostBack 未定义

MvcBuildViews true 与 ASP.NET MVC 2 中的实体框架

使用 Visual Studio 2012 恢复删除的文件

asp.net 中的 Eval() 有什么用

HttpContext.Current.Cache.Insert 和 HttpContext.Current.Cache.Add 有什么区别

如何在 ASP.NET 下拉列表中添加选项组?

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用

要调用此方法,Membership.Provider属性必须是ExtendedMembershipProvider的实例

如何在 asp.net 中更改 DataBinder.Eval 的日期格式?

模型是否包含字段而不将其添加到数据库中?

哪个控件导致了回发?

使用 NLog 在 ASP.NET Web API 2.1 中进行全局异常处理?

获取 POST 变量