2009-10-16 45 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