【问题标题】:send image via web service通过网络服务发送图像
【发布时间】:2010-07-25 06:21:24
【问题描述】:
我想通过 Visual Studio 2008(C# 和 ASP)编写一个具有 Web 应用程序和 Windows 应用程序的程序。
我想在网络应用程序(上传)中获取客户端图像并将它们存储在数据库(mysql)中,然后通过网络服务将这些图像发送到 Windows 应用程序(所以我是新的网络服务,而不是网站)。但我有两个问题:
我有 2 种方法在 mysql 中存储图像,首先我应该在 DB 中有 BLOB 字段-它需要更多空间-,其次我应该只在 DB 中保存每个图像的名称(所以在一个文件夹中保存图像) - 这样我不知道如何从客户端获取图像并将它们存储在该文件夹中-。哪一个?还是其他什么?
如何(代码)通过网络服务传输图像(Byte[] 或?)。
【问题讨论】:
标签:
c#
asp.net
wcf
web-services
【解决方案1】:
使用 WCF 传输图像的选项之一是将图像转换为字节数组并将其传递给客户端。然后在客户端从 byte[] 转换为图像。
【解决方案2】:
问题一:
DB debase 中的图像或链接是旧的并且仍未解决。有一个 microsoftwhite paper 建议(对于 SQL Server 2008,因此您的里程可能会有所不同)对于 150k 数据库存储以下的图像/二进制文件是一个很好的折衷方案。如果大多数图像都结束了,请使用链接,如果低于,则存储在 DB 中。
问题 2:
Web 服务将有一个 http 上下文对象,因此您可以简单地使用 Response.BinaryWrite 方法,该方法采用 byte[]。您仍然需要编写正确的标题(用于 mime 类型等)。
对于磁盘上的文件,最简单的做法是使用带有文件路径参数的Response.WriteFile 方法。
在任何一种情况下,您都需要在客户端截取它并转换回图像。