我已经在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)
答案 0 :(得分:2)
File.ReadAllBytes
方法需要一个字符串,并将该字符串用作它将读取的文件的名称。您无法使用它来从流中读取数据。
您已经拥有了ms.ToArray()
所需的字节数组,因此您不需要再使用它来执行任何操作:
Dim filebytes() As Byte = ms.ToArray()
IO.FileInfo
方法还需要一个字符串,并将其用作文件名。您应该先在代码中获取filebytes
数组,以便可以使用它来计算长度:
req.ContentLength = headerbytes.Length + filebytes.Length + endboundarybytes.Length
另外,我发现您将图像保存两次到内存流,您应该只执行一次。