2009-10-16 44 views
1

我知道這是有可能做到這一點:字節數組輸出爲圖像

<asp:Image runat="server" ImageUrl="~/MyImageHandler.ashx?imageid=2" /> 

...但我有一個情況下字節數組數據只適用於該頁面(即不可用在會話中,不能被id引用),所以我不能將ImageUrl指向不同的頁面。

有沒有辦法給予一個ASP:圖像的字節數組呈現爲圖像?

+0

字節數組來自哪裏? – 2009-10-16 12:37:13

+0

我已經更新了我的答案..現在檢查 – 2009-10-16 13:03:02

回答

2

唯一合適的解決方案是將字節數組放入會話中。如果您關心唯一性(多人獲取對方的字節數組),請使用隨機GUID作爲關鍵字。

+0

我必須給這個綠色的勾號,只是因爲它會達到結果,仍然不是我想要的方式 - 但我是將不得不承認沒有對這個問題的答案 – Paul 2009-10-16 13:19:12

3

您將不得不處理的主要衝突是<asp:Image/>元素被呈現爲常規<img />,該元素需要指向URL的src屬性。

既然如此,我看到了兩個毛茸茸的選擇:

  • 使用的技術描述here嵌入在src屬性在Base64編碼的圖像。請注意,這與不是一起使用Internet Explorer。

  • 將您的Base64編碼圖像嵌入到頁面中,作爲隱藏的<input />元素。然後,您可以使用JavaScript將數據返回發送到服務器,服務器將使用Response.Write()(當然,確保適當地設置內容類型)將其發送回瀏覽器。

+0

是的,我考慮過那裏的第二個選項,但不得不丟棄它,因爲它讓我感覺有點不穩定,以這種方式來回傳遞數據。好主意,但! – Paul 2009-10-16 13:18:06

+0

如果你正在考慮第二種選擇,你可以使用Session來代替(就像我的回答)。 – SLaks 2009-10-16 13:31:58

+0

在會話中存儲圖像顯然是更好的選擇(另請參閱:數據庫)。但是,如果出於任何原因,您無法訪問這些文件系統(以及文件系統...),那麼這是您唯一的選擇。 – 2009-10-16 15:29:13