将二进制图像传递到另一个页面
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 div
或 img
标记中。
顺便说一句,建议始终将图像存储在文件系统上。如果您可以重构服务器端代码以将图像存储在目录结构中 - 那将是理想的。这可能需要对您的代码库进行大量更改。
如果图像不是太大 - 您可以继续使用我建议的解决方案的现有方法。通常,数据库 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?
我正在从 SQL 服务器检索二进制图像,并想将此二进制图像从 GridView
控件传递到另一个页面并使用 Image
控件显示。最好的方法是什么?
我尝试使用 Http.Utility
(编码和解码),但它说 URL 太长了。
我的建议如下:
1. 从细节上看,您的图像似乎在数据库 table 中存储为 blob(二进制数据)。
2. 无需获取 blob(binarydata) 并将其传递到下一页,您只需将数据库 ID 传递到下一页即可。
3. 在下一页上,向 .NET 服务器端代码发出 AJAX 请求(您可以将其放在页面加载上)并根据从上一页收到的数据库 ID 获取 blob。
4. 然后显示此图像并使用 ajax 请求的 javascript 成功回调将其加载到 HTML div
或 img
标记中。
顺便说一句,建议始终将图像存储在文件系统上。如果您可以重构服务器端代码以将图像存储在目录结构中 - 那将是理想的。这可能需要对您的代码库进行大量更改。
如果图像不是太大 - 您可以继续使用我建议的解决方案的现有方法。通常,数据库 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?