所以这是场景。我有一个 Canvas ,我通过
获取其数据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
关于javascript - 转换数据:image/png;base64 into an image type in database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657692/