2

我正在尝试使用 HTTP Post Multipart 将图像发送到服务器。其他一切都很好,我有所有的边界设置和东西。

但是我必须事先对图像做什么?我必须将其转换为二进制吗?这是来自标头的标头数据(使用 Fiddler)。这是我需要上传的:

-----------------------------7daea2aa40c80
Content-Disposition: form-data; name="pict"; filename="pic.jpeg"
Content-Type: image/pjpeg

<Binary here ... or at least I think it is> ..
�����JFIF���������C� (lots more of this I removed)

有什么建议吗?

4

2 回答 2

2

您可以使用 File.ReadAllBytes 函数将文件读入 byte[]。从那里您可以使用 StreamWriter 将字节输出到您的响应中。不需要转换。

于 2010-02-20T23:00:59.303 回答
0

理想情况下,您希望使用设置为 base64 的 Content-Transfering-Encoding。然后,如果您的文件转换为字节数组,您只需执行 File.ReadAllBytes,然后使用Convert.ToBase64String方法转换为 base64。

您可以在 Wikipedia 关于MIME的文章中了解更多信息

例子

string data =
       @"----------------------------7daea2aa40c80\n";
       + @"Content-Disposition: form-data; name="pict"; filename="{0}"\n"
       + @"Content-Type: image/pjpeg\n";
       + @"\n{1}";

string filename = "pict.jpg";
string bytes = Convert.ToBase64String(File.ReadAllBytes(filename));
string request = string.Format(data, filename, bytes);
于 2010-05-09T17:31:21.787 回答