2010-07-25 119 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方法。

無論在哪種情況下,您都需要在客戶端攔截並轉換回圖像。