我创建了一个网页,其中使用了 Image
控件来显示图像。除了这个控件,我还有一些标签和输入框
下面是我用来将图像保存到数据库的代码
byte[] imageSize = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile uploadedImage = FileUpload1.PostedFile;
uploadedImage.InputStream.Read(imageSize, 0, (int)FileUpload1.PostedFile.ContentLength);
SqlParameter UploadedImage = new SqlParameter("@image", SqlDbType.Image, imageSize.Length);
UploadedImage.Value = imageSize;
string sql = "insert into imageDB(Image) values (@image)";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.Add(UploadedImage);
cmd.ExecuteNonQuery();
}
下面是我用来从数据库中检索图像的代码
byte[] rawImg = (byte[])rdr["image"];
MemoryStream Stream = new MemoryStream();
Stream.Write(rawImg, 0, rawImg.Length);
Bitmap Display_Picture = new Bitmap(Stream);
//after this no idea how to proceed
我看过一些链接都建议我们不能将这个字节信息设置到Image
控件。
让我知道我从数据库中检索图像的方法是否正确,如果正确,我应该使用什么类型的控件,以便从数据库中检索的图像可以显示在网页上
最佳答案
我从数据库中检索图像的方式是否正确?
我会改用下面的代码(抱歉没有测试过):
byte[] imageBytes = Convert.FromBase64String(rdr["image"]);
MemoryStream stream = new MemoryStream(imageBytes);
Image image = Image.FromStream(stream);
如何将图像绑定(bind)到 asp.net 图像控件?
我会创建一个获取并返回图像的 HttpHandler。然后将 asp:Image 上的 ImageUrl 属性绑定(bind)到 HttpHandler 的 url。 您可以在 Dale Ragan 的回答中看到如何做到这一点:How to bind a MemoryStream to asp:image control?
关于c# - 使用 C# 从 SQL Server 数据库中保存和检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261566/