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

强制从 /bin 而不是 GAC 加载程序集?

在 ASP.Net 中使用自定义 RoleProvider 时如何允许多个角色查看页面

IIS 中的嵌套 ASP.NET应用程序继承父配置值?

在 C# 中将 IHtmlContent/TagBuilder 转换为字符串

发布发布事件

回发后动态创建的控件丢失数据

在 asp.net 中将 JSON 转换为 .Net 对象时出错

什么是实体框架中的复杂类型以及何时使用它?

使用 jQuery 调用 ASP.NET PageMethod/WebMethod - 返回整个页面

DropDownList AppendDataBoundItems(第一项为空白且无重复项)

如何获取正在访问 ASP.NET 应用程序的当前用户?

如何使用 ASP.NET 和 jQuery 返回 JSON

如何在 ASP.NET MVC 中启用跨源请求

解析器错误消息:无法加载类型网络营销

如何忽略身份框架的魔力,只使用 OWIN 身份验证中间件来获取我寻求的声明?

删除 HTML 或 ASPX 扩展

如何使用restsharp下载文件

头标记中的内联代码 - ASP.NET

如何在 asp.net 中实现Access-Control-Allow-Origin标头

~/ 等价于 javascript