繁体   English   中英

将data:image / png; base64转换为数据库中的图像类型

[英]Convert data:image/png;base64 into an image type in database

所以这是场景。 我有一个画布,我正在通过它获取数据

var image = canvas.toDataURL("image/png");

然后将数据放入TextArea中,以便将其插入数据库中

 document.getElementById("TextArea1").textContent = image

如果我将数据插入文本区域内,则将“ data:image / png; base64,iVBORw0KGgoAAAAN ...”插入数据库中,它表示

Operand type clash: nvarchar(max) is incompatible with image.

所以,我要和需要做的就是将“ data:image / png; base64,iVBORw0KGgoAAAAN ...”转换为“ 0x89504E470D0A1A0A ...”之类的东西。 提前致谢!

您的图片采用Base64格式(即字符串),因此需要先将其转换为字节数组,然后再将其保存在数据库中。 像这样:

Dim base64String = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="

Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Temp\Database1.mdf;Integrated Security=True;User Instance=True")
Dim sql As String = "INSERT INTO MyTable VALUES(@Image)"
Dim cmd As New SqlCommand(sql, con)
Dim imageBytes As Byte() = Convert.FromBase64String(base64String)
Dim p As New SqlParameter("@Image", SqlDbType.Image)
p.Value = imageBytes
cmd.Parameters.Add(p)
cmd.ExecuteNonQuery()

有关将图像加载和保存到数据库的更多示例,请参见:

http://www.codeproject.com/Articles/437937/Save-and-Retrieve-Image-from-a-SQL-Server-Database

您正在DB中输入文本,而您的db字段类型是image,所以您会遇到错误。 如果可能,然后将您的数据库字段类型更改为varchar,它将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM