gpt4 book ai didi

c# - 如何使用 ASP.NET 显示来自 SQL Server 的图像?

转载 作者:太空狗 更新时间:2023-10-30 00:26:25 25 4
gpt4 key购买 nike

这是我的类 (product.cs) 插入图像的方法:

public static void InsertProductIMG(byte[] image, string contentType) 
{
string cs = "Data Source=(local);Initial Catalog=myApp;Integrated Security=True";
string comandoSql = "INSERT INTO [myApp].[dbo].[product] (image, ContentType) VALUES (@image, @contentType)";

using (SqlConnection conn = new SqlConnection(cs))
{
conn.Open();

using (SqlTransaction trans = conn.BeginTransaction())
{
SqlCommand cmd = new SqlCommand(comandoSql, conn, trans);
SqlParameter[] parms = new SqlParameter[2];
parms[0] = new SqlParameter("@image", image);
parms[1] = new SqlParameter("@contentType", contentType);
foreach (SqlParameter p in parms)
{
cmd.Parameters.Add(p);
}

cmd.ExecuteNonQuery();
trans.Commit();
}
}
}

这是我调用上述方法的 apsx 页面的隐藏代码:

byte[] imageBytes = new byte[fupld.PostedFile.InputStream.Length];
product.InsertProductIMG(imageBytes, "image/jpeg");//product is the class where the method is

现在我想知道如何显示这张图片?

我是否必须从 sql (SELECT) 中读取 byte[],转换为字符串,然后再转换为 byte[]?然后转换为位图 (System.Drawing)。但是我如何在 aspx 页面中显示这个位图呢?

我不知道该怎么做。请帮忙!! :]

谢谢

观察:在 SQL Server 中,image 列的类型为 varbinary(MAX)

最佳答案

创建一个返回图像的网页。您将从数据库中选择字节(因为您已经编写了插入代码,我想您知道如何选择)。获得字节后,您需要设置 MIME 类型并将字节写入响应流。

var bytesFromDatabase = getImageFromDatabase();
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite(bytesFromDatabase);

编辑:

只需将带有 cource tet 的 img 标记用于上述 aspx 网页。例如:

<img src="http://www.example.com/image.aspx?id=1" alt="image" />

关于c# - 如何使用 ASP.NET 显示来自 SQL Server 的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com