【问题标题】:Get an image from service从服务中获取图像
【发布时间】:2012-11-01 22:35:07
【问题描述】:

我使用 MVC4、Razor 和 C#。我想要Service,例如:

[WebGet]
[OperationContract]
public string Get(int id)
{
  PictureManager m = new PictureManager();
  Picture p = m.Load(id);
  return Convert.ToBase64String(p.Trunk);
}

地点:

public byte[] Trunk { get { return _trunk; } }

在客户端我想以同样的方式使用它:

<img src="http://MyService/MyPictures/Get?id=21"> 

有同样的能力吗?或者我可能需要使用一些 JavaScript 在客户端显示图片?你能告诉我方向吗?

【问题讨论】:

  • 尝试返回 FileStreamResult

标签: c# javascript asp.net-mvc service asp.net-mvc-4


【解决方案1】:

如果您的图像是 jpeg,请从您的代码中返回。

return "data:image/jpeg;base64," + Convert.ToBase64String(p.Trunk);

Read here for the Data URI scheme.

【讨论】:

  • 大多数时候,这是一个非常糟糕的设计。这将在每次呈现 html 时生成图像的 base64 版本。例如,如果您使用两次图像,则图像将被渲染两次。这将为 html 页面增加巨大的网络过载。如果您创建一个专用的图像服务端点,您将能够添加缓存、控制 html 标头等。
  • 您可以阅读this 获取血统样本。
猜你喜欢
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多