vb.net字节无法转换为字符串

时间:2014-09-07 00:14:52

标签: vb.net

我已经在Stackoverflow上检查了答案,然后才有人说,我仍然感到困惑,我正在尝试上传一张我使用ms.Toarray()保存的图片,但我一直得到"字节-1无法转换字符串"等,这是我的代码我试图使用谢谢

            header.AppendFormat("filename=""{0}""", IO.Path.GetFileName(ms.toarray()))
            header.AppendLine()
            header.AppendLine("Content-Type: application/octet-stream")
            header.AppendLine()

            Dim headerbytes() As Byte = System.Text.Encoding.UTF8.GetBytes(header.ToString)
            Dim endboundarybytes() As Byte = System.Text.Encoding.ASCII.GetBytes(vbNewLine & "--" & boundary & "--" & vbNewLine)

1 个答案:

答案 0 :(得分:2)

File.ReadAllBytes方法需要一个字符串,并将该字符串用作它将读取的文件的名称。您无法使用它来从流中读取数据。

您已经拥有了ms.ToArray()所需的字节数组,因此您不需要再使用它来执行任何操作:

Dim filebytes() As Byte = ms.ToArray()

IO.FileInfo方法还需要一个字符串,并将其用作文件名。您应该先在代码中获取filebytes数组,以便可以使用它来计算长度:

req.ContentLength = headerbytes.Length + filebytes.Length + endboundarybytes.Length

另外,我发现您将图像保存两次到内存流,您应该只执行一次。