2015-06-06 41 views
0

我正在爲我的應用程序使用webApi 2。我有畫廊,我需要一種方式來展示我的圖像。我已經搜查了很多,發現像這樣的一些文章:使用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中處理我的圖像?

什麼是最好的方法?

+1

沒有關於您的用例的更多信息,很難知道最佳方式是什麼。通常會使用格式化程序http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters然後,您的客戶端會發出兩個請求,/ api/Images來獲取所有圖像,然後爲每個圖像創建適當的視圖(HTML將爲'')。需要一個接受擴展的路由,並使用一個格式化程序來返回適當的內容類型和二進制數據。你的控制器可以完成所有的二進制流媒體處理,但格式化器可以提供更好的靈活性 – ManOVision

+0

@ ManOVision非常感謝您....所以您對使用BSON有什麼看法?或者我應該去反應寫?1 –

+0

我從來沒有使用過BSON。我們的API有很多不同的客戶端,因此JSON對我們的DTO來說是普遍的。對於圖像,我們總是使用純二進制流的響應主體。這樣每個客戶端都不需要進行自定義分析。我們可以通過使用正確的內容類型,內容長度等完全依賴HTTP規範。這也允許範圍請求,因此我們可以通過簡歷進行流式傳輸和部分下載。毫無疑問,BSON將迎頭趕上,我們將來可能會使用它,但現在它不適合我們的用例。 – ManOVision

回答

0

沒有關於您的用例的更多信息,很難知道最佳方式是什麼。通常會使用formatter。然後你的客戶端會提出兩個請求,/ api/Images來獲取所有圖像,然後爲每個圖像創建合適的視圖(HTML會)。需要一個接受擴展的路由,並使用一個格式化程序來返回適當的內容類型和二進制數據。你的控制器可以完成所有的二進制流媒體處理,但格式化器可以提供更好的靈活性

至於BSON,我從未使用過BSON。我們的API有很多不同的客戶端,因此JSON對我們的DTO來說是普遍的。對於圖像,我們總是使用純二進制流的響應主體。這樣每個客戶端都不需要進行自定義分析。我們可以通過使用正確的內容類型,內容長度等完全依賴HTTP規範。這也允許範圍請求,因此我們可以通過簡歷進行流式傳輸和部分下載。毫無疑問,BSON將迎頭趕上,我們將來可能會使用它,但現在它不適合我們的用例。