我正在尝试使用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)
有什么建议吗?
答案 0 :(得分:2)
您可以使用File.ReadAllBytes函数将文件读入byte []。从那里,您可以使用StreamWriter将字节输出到您的响应中。无需转换。
答案 1 :(得分:0)
理想情况下,您希望将Content-Transfering-Encoding设置为base64。然后你只需将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);