将图像转换为字节然后转换为字符串时出现问题

康纳兹

我有一个基于套接字通信的应用程序,服务器将请求发送到客户端以获取签名图像。签名在客户端获取,然后发送回服务器。

为此,我使用了一个图片框,将其数据转换为字节,然后转换为字符串,以通过套接字连接发送到服务器。一切正常。

我在保存数据库中接收到的数据时遇到问题,因为我需要将其保存为图像类型,但是此时数据仍然是字符串,因此出现错误:

“操作数类型冲突:nvarchar与图像不兼容”

我想这是因为我正在尝试将字符串发送到sql图像类型?

尝试调用该过程和错误的代码(服务器端接收到的数据作为字符串):

try
{
    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["GetConnector"].ConnectionString))
    {
        SqlCommand sqlComm = new SqlCommand("PL_Device_ReadData", conn);
        sqlComm.Parameters.AddWithValue("@DeviceTypeID", DeviceID);
        sqlComm.Parameters.AddWithValue("@RequestID", RequestID);
        if (DeviceID != "5")
        {
            sqlComm.Parameters.AddWithValue("@Reading", Reading);
        }
        else if (DeviceID == "5")
        {
            sqlComm.Parameters.AddWithValue("@ImageReading", Reading);
            sqlComm.Parameters.Add("@ImageReading", SqlDbType.Image);
            sqlComm.Parameters["@ImageReading"].Value = Reading;
        }
        sqlComm.CommandType = CommandType.StoredProcedure;

        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = sqlComm;

        da.Fill(ds);
    }
}

catch (Exception e)
{

}

存储过程:

ALTER PROCEDURE [dbo].[PL_Device_ReadData]
    @DeviceTypeID INT,
    @RequestID INT,
    @Reading NVARCHAR(100) = NULL,
    @ImageReading IMAGE = NULL  
AS
BEGIN
--Data
    IF @DeviceTypeID = 5 
    BEGIN
        UPDATE dbo.DeviceRequests 
        SET ImageData = @ImageReading
        WHERE id = @RequestID
        AND DeviceTypeID = @DeviceTypeID
    END
    ELSE
    BEGIN   
        UPDATE dbo.DeviceRequests 
        SET Value = @Reading
        WHERE id = @RequestID
        AND DeviceTypeID = @DeviceTypeID
END 
END

将图像转换为字节:

byte[] imgData = null;
// storage for the img bytes
imgData = ImgToByteArray(picSignature.InitialImage, ImageFormat.Jpeg);

public static byte[] ImgToByteArray(Image img, ImageFormat imgFormat)
{
    byte[] tmpData = null;
    using (MemoryStream ms = new MemoryStream())
    {
        img.Save(ms, imgFormat);

        tmpData = ms.ToArray();
    }
    // dispose of memstream
    return tmpData;

}

将字节转换为字符串(以通过套接字发送):

_Reading = System.Text.Encoding.UTF8.GetString(_imagevalues);
Gmoniava

这:

_Reading = System.Text.Encoding.UTF8.GetString(_imagevalues);

是错的。是否_imagevalues保存图像的二进制数据?比起这行代码,您试图将其解释为字符串,这是错误的。您只需要转换图像的每个字节即可说出其十六进制字符串表示形式。然后通过网络发送整个这样的字符串。例如,请参见此处如何将字节数组转换为十六进制字符串,反之亦然?(如答案之一所述,这种转换并不是真正必要的,您也可以发送纯字节)。

然后在服务器端,您必须解析此十六进制字符串并将其转换为字节数组,并可能保存在数据库中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字符串转换为十六进制,然后转换为字节数组

来自分类Dev

将字符串转换为数字日期格式时出现问题R

来自分类Dev

将字符串转换为Char然后转换为Int

来自分类Dev

swift-将字符串转换为日期,然后转换为其他格式的字符串

来自分类Dev

在JavaScript(GAS)中将字符串转换为多维数组中的日期时出现问题

来自分类Dev

如何将字符串转换为UTF-16LE,然后转换为Base64?

来自分类Dev

将“字符串对象”转换为 Int32 数组,然后转换为 Uint32 数组

来自分类Dev

将Base64字符串转换为十六进制字符串时出现问题

来自分类Dev

将字符串转换为DateTime时出现错误

来自分类Dev

将字符串转换为字节字符串

来自分类Dev

将字符串转换为图像时出现imagepng错误

来自分类Dev

将字符串转换为图像时出现imagepng错误

来自分类Dev

使用evo pdf库将html字符串转换为pdf时出现的问题

来自分类Dev

将字符串转换为日期时出现语言环境问题

来自分类Dev

将字节列表转换为字节字符串

来自分类Dev

将字节转换为带符号字节的字符串

来自分类Dev

将字典转换为对象时出现问题

来自分类Dev

将HSL转换为RGB时出现问题

来自分类Dev

将mysql转换为PDO时出现问题

来自分类Dev

将CSV文件转换为XLS时出现问题

来自分类Dev

将位图转换为字节数组,转换为字符串,然后一直返回

来自分类Dev

将字节转换为字符串然后再次返回

来自分类Dev

将字符串数组转换为字节数组然后返回

来自分类Dev

问题在Python中将字节转换为字符串

来自分类Dev

将字节片转换为字符串时,Golang会进行任何转换吗?

来自分类Dev

从字符串中删除空格,然后转换为整数

来自分类Dev

通过正则表达式匹配ahref标签,然后转换为字符串

来自分类Dev

从文件读取字符串到ArrayList,然后转换为Array

来自分类Dev

映射参数数组,然后转换为字符串

Related 相关文章

  1. 1

    将字符串转换为十六进制,然后转换为字节数组

  2. 2

    将字符串转换为数字日期格式时出现问题R

  3. 3

    将字符串转换为Char然后转换为Int

  4. 4

    swift-将字符串转换为日期,然后转换为其他格式的字符串

  5. 5

    在JavaScript(GAS)中将字符串转换为多维数组中的日期时出现问题

  6. 6

    如何将字符串转换为UTF-16LE,然后转换为Base64?

  7. 7

    将“字符串对象”转换为 Int32 数组,然后转换为 Uint32 数组

  8. 8

    将Base64字符串转换为十六进制字符串时出现问题

  9. 9

    将字符串转换为DateTime时出现错误

  10. 10

    将字符串转换为字节字符串

  11. 11

    将字符串转换为图像时出现imagepng错误

  12. 12

    将字符串转换为图像时出现imagepng错误

  13. 13

    使用evo pdf库将html字符串转换为pdf时出现的问题

  14. 14

    将字符串转换为日期时出现语言环境问题

  15. 15

    将字节列表转换为字节字符串

  16. 16

    将字节转换为带符号字节的字符串

  17. 17

    将字典转换为对象时出现问题

  18. 18

    将HSL转换为RGB时出现问题

  19. 19

    将mysql转换为PDO时出现问题

  20. 20

    将CSV文件转换为XLS时出现问题

  21. 21

    将位图转换为字节数组,转换为字符串,然后一直返回

  22. 22

    将字节转换为字符串然后再次返回

  23. 23

    将字符串数组转换为字节数组然后返回

  24. 24

    问题在Python中将字节转换为字符串

  25. 25

    将字节片转换为字符串时,Golang会进行任何转换吗?

  26. 26

    从字符串中删除空格,然后转换为整数

  27. 27

    通过正则表达式匹配ahref标签,然后转换为字符串

  28. 28

    从文件读取字符串到ArrayList,然后转换为Array

  29. 29

    映射参数数组,然后转换为字符串

热门标签

归档