【问题标题】:storing image as blob in database将图像作为 blob 存储在数据库中
【发布时间】:2013-03-14 04:57:35
【问题描述】:

我正在尝试将图像作为 BLOB 存储在我的数据库中,如下所示:

    c = new MySqlCommand("INSERT INTO korisnici VALUES( '" + entity.Id + "','" + entity.Prezime + "','" + entity.Ime + "','" + **SlikaUBase64(entity.Slika, ImageFormat.Bmp)**...

这是我从图像创建 BLOB 的函数:

    public string SlikaUBase64(Image image, ImageFormat format)
{
    //slika u byte[]
    byte[] prazan=new byte[0];
    if (image == null) return Convert.ToBase64String(prazan);
    MemoryStream ms = new MemoryStream();
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();

    // byte[] u base64
    string base64 = Convert.ToBase64String(imageBytes);
    return base64;
}

我遇到了这个异常:尝试序列化参数http://tempuri.org/:entity 时出错。 InnerException 消息是带有数据合同名称的“Type 'System.Drawing.Bitmap' '位图:http://schemas.datacontract.org/2004/07/System.Drawing' 不是预期的。考虑使用 DataContractResolver 或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。有关详细信息,请参阅 InnerException。

有人可以帮忙吗?

【问题讨论】:

  • 神圣的sql注入漏洞,蝙蝠侠!
  • 另外,tempuri.org 是微软在其所有序列化示例代码中使用的假公司。他们已经允许域过期。听起来您只是部分改编了某个地方的样本。

标签: c# database


【解决方案1】:

我不会传入 Image 引用,而是传入 Byte[]。

【讨论】:

    猜你喜欢
    • 2020-11-06
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2020-09-03
    • 2021-11-23
    • 2023-03-15
    • 2014-07-02
    • 1970-01-01
    相关资源
    最近更新 更多