【问题标题】:Pass image from sql to C# then to JSON service将图像从 sql 传递到 C#,然后传递到 JSON 服务
【发布时间】:2013-05-25 17:36:54
【问题描述】:

我有一个添加到数据表的 sql 图像字段。然后我将此图像传递给 Json 调用。在尝试获取图像时的 json 调用中,我得到以下信息 image_returnset[0].Picture 持有System.Byte[] 的值。

如何迭代 System.Byte[] 并将图像绑定到 html 图像控件?

这是我的 C# 代码

userSqlParameter.Direction = ParameterDirection.Input;
userSqlParameter.Value = itemID;

SqlCommand cmd = new SqlCommand("Get_image", con);
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add(userSqlParameter);

da.SelectCommand = cmd;

//byte[] barrImg = (byte[])dt.Rows[0]["Picture"];
// dt.Rows[0]["Picture"]
da.Fill(dt);

【问题讨论】:

    标签: c# javascript json


    【解决方案1】:

    获得字节数组后,使用Convert.ToBase64String(byteArray) 将其转换为 Base-64 字符串。将该字符串存储在您的 json 数据中并将其返回到您的浏览器。

    { myImageBase64String: "..." }
    

    在浏览器中,您可以将该字符串分配给图像的src,例如:

    image.src = "data:image/png;" + result.myImageBase64String;
    

    【讨论】:

    • 谢谢,这行得通吗? byte[] barrImg = (byte[])dt.Rows[0]["图片"]; dt.Rows[0]["图片"] = Convert.ToBase64String(barrImg);
    • 可能不会。您可能需要在客户端执行一些 javascript
    • 如何将 base64 传递到已经为 System.Byte[] 分配的 DataTable 中?
    • 为什么需要放回DataTable?只需获取数据并使用 json 将其传递到客户端。
    • dataTable 用 DataContractJsonSerializer 序列化,然后传递给客户端
    猜你喜欢
    • 2016-02-22
    • 2018-01-09
    • 1970-01-01
    • 2012-03-01
    • 2011-05-12
    • 2013-07-26
    • 1970-01-01
    • 2015-02-12
    • 2019-12-17
    相关资源
    最近更新 更多