将二进制图像传递到另一个页面

Passing binary image to another page

我正在从 SQL 服务器检索二进制图像,并想将此二进制图像从 GridView 控件传递到另一个页面并使用 Image 控件显示。最好的方法是什么?

我尝试使用 Http.Utility(编码和解码),但它说 URL 太长了。

我的建议如下:
1. 从细节上看,您的图像似乎在数据库 table 中存储为 blob(二进制数据)。
2. 无需获取 blob(binarydata) 并将其传递到下一页,您只需将数据库 ID 传递到下一页即可。
3. 在下一页上,向 .NET 服务器端代码发出 AJAX 请求(您可以将其放在页面加载上)并根据从上一页收到的数据库 ID 获取 blob。
4. 然后显示此图像并使用 ajax 请求的 javascript 成功回调将其加载到 HTML divimg 标记中。

顺便说一句,建议始终将图像存储在文件系统上。如果您可以重构服务器端代码以将图像存储在目录结构中 - 那将是理想的。这可能需要对您的代码库进行大量更改。
如果图像不是太大 - 您可以继续使用我建议的解决方案的现有方法。通常,数据库 tables 中有大量二进制数据 - 从长远来看可能会使查询变慢。



您可能想检查如何设置作为图像获取的二进制数据并将其设置在 html 中。请查看此 link 了解详细信息:Is it possible to put binary image data into html markup and then get the image displayed as usual in any browser?