【发布时间】:2018-09-30 13:35:32
【问题描述】:
我正在从 SQL Server 检索二进制图像,并希望将此二进制图像从 GridView 控件传递到另一个页面并使用 Image 控件进行显示。最好的方法是什么?
我尝试使用Http.Utility(编码和解码),但它说 URL 太长。
【问题讨论】:
标签: c# binary-data
我正在从 SQL Server 检索二进制图像,并希望将此二进制图像从 GridView 控件传递到另一个页面并使用 Image 控件进行显示。最好的方法是什么?
我尝试使用Http.Utility(编码和解码),但它说 URL 太长。
【问题讨论】:
标签: c# binary-data
我的建议如下:
1. 从细节上看,您的图像似乎以 blob(二进制数据)的形式存储在数据库表中。
2. 无需获取 blob(binarydata) 并将其传递到下一页,您只需将数据库 ID 传递到下一页即可。
3. 在下一页上,向 .NET 服务器端代码发出 AJAX 请求(您可以将其放在页面加载中)并根据从上一页收到的数据库 ID 获取 blob。
4. 然后显示此图像并使用ajax 请求的javascript 成功回调将其加载到HTML div 或img 标记中。
顺便说一句,建议始终将图像存储在文件系统上。如果您可以重构服务器端代码以将图像存储在目录结构中 - 那将是理想的。您的代码库可能需要进行大量更改。
如果图像不是太大 - 您可以使用我建议的解决方案继续使用现有方法。通常,在数据库表中拥有大量二进制数据 - 从长远来看可能会使查询变慢。
您可能想检查如何设置获取为图像的二进制数据并将其设置为 html。详情请查看此链接:Is it possible to put binary image data into html markup and then get the image displayed as usual in any browser?
【讨论】: