2010-07-25 121 views
1

我想通过具有web应用程序和windows应用程序的visual studio 2008(C#和ASP)编写一个程序。我想要在Web应用程序中获取客户端图像(上传)并将它们存储在数据库(mysql)中,然后通过Web服务(所以我新的Web服务,而不是网站)将这些图像发送到Windows应用程序。但我有2个问题:通过web服务发送图像

  1. 我有2种方法来存储在MySQL中的图像,首先我应该在DB BLOB字段 - 即它需要更多的节省空间,第二我要救仅举在DB的每个图像的(所以有一个文件夹中的图像) - 这样我不知道如何从客户端获取图像并将它们存储在该文件夹中。哪一个?还有其他什么?

  2. 如何(代码)可以通过Web服务(字节[]或?)传输图像。

回答

5

使用WCF传输图像的选项之一是将图像转换为字节数组并将其传递给客户端。然后从字节[]转换为客户端的图像。

1

问题1:

DB debase中的图像或链接是旧的,仍然未解决。有一个推荐的微软white paper推荐(对于SQL Server 2008,所以你的里程可能会有所不同)对于在150k DB存储下的图像/二进制文件是一个很好的折衷。如果大多数图像都已结束,请使用链接,如果存在,则存储在数据库中。

问题2:

的Web服务将有一个http上下文对象,所以你可以简单地使用Response.BinaryWrite方法,采用一个byte[]。你仍然需要编写正确的头文件(用于MIME类型等)。

对于磁盘上的文件,最简单的方法是使用带有文件路径参数的Response.WriteFile方法。

无论在哪种情况下,您都需要在客户端拦截并转换回图像。