【问题标题】:Handle Images using webApi 2使用 webApi 2 处理图像
【发布时间】:2015-08-21 06:18:05
【问题描述】:

我正在为我的应用程序使用 webApi 2。我有画廊,我需要一种方法来展示我的图像。我搜索了很多,发现了一些这样的文章:

http://www.dotnetcurry.com/aspnet/1120/aspnet-webapi-binary-contents-images
https://jamessdixon.wordpress.com/2013/10/01/handling-images-in-webapi/

但他们似乎没有有效的方法。

所以我决定再问一次这个问题。如何在 web api 2 中处理我的图像?

最好的方法是什么?

【问题讨论】:

  • 如果没有关于您的用例的更多信息,很难知道最好的方法是什么。通常会使用格式化程序asp.net/web-api/overview/formats-and-model-binding/… 然后您的客户端会发出两个请求,/api/Images 以获取您的所有图像,然后为每个图像创建适当的视图(HTML 将是<img src="/api/Images/{id}.jpg" />)。需要接受扩展的路由和返回正确内容类型和二进制数据的格式化程序。您的控制器可以处理所有二进制流,但格式化程序可以提供更好的灵活性。
  • @ManOVision 非常感谢您....那么您对使用 BSON 有何看法?!!或者我应该去回复写?1
  • 我从未使用过 BSON。我们的 API 有很多不同的客户端,以至于 JSON 对于我们的 DTO 来说是通用的。对于图像,我们总是使用纯二进制流的响应体。这样,每个客户端都不需要进行自定义解析。我们可以通过使用正确的内容类型、内容长度等完全依赖 HTTP 规范。这也允许范围请求,因此我们可以流式传输并使用简历进行部分下载。我毫不怀疑 BSON 会流行起来,我们将来可能会使用它,但现在它不适合我们的用例。
  • @ManOVision 非常感谢...输入您的 cmets 作为答案,以便我可以将它们标记为答案

标签: asp.net image asp.net-web-api handle


【解决方案1】:

如果没有关于您的用例的更多信息,很难知道最好的方法是什么。通常会使用formatter。然后您的客户端将发出两个请求, /api/Images 以获取您的所有图像,然后为每个图像创建正确的视图(HTML 将是)。需要一个接受扩展的路由和一个格式化程序来返回正确的内容类型和二进制数据。您的控制器可以处理所有二进制流,但格式化程序可以提供更好的灵活性。

至于 BSON,我从未使用过 BSON。我们的 API 有很多不同的客户端,以至于 JSON 对于我们的 DTO 来说是通用的。对于图像,我们总是使用纯二进制流的响应体。这样,每个客户端都不需要进行自定义解析。我们可以通过使用正确的内容类型、内容长度等完全依赖 HTTP 规范。这也允许范围请求,因此我们可以流式传输并使用简历进行部分下载。我毫不怀疑 BSON 会流行起来,我们将来可能会使用它,但现在它不适合我们的用例。

【讨论】:

    猜你喜欢
    • 2013-10-01
    • 2016-03-14
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多