通过POST Multipart发送图像(HTTPRequest)
问题描述:
我试图使用HTTP Post Multipart将图像发送到服务器。其他一切都很好,我有所有的限制和东西。通过POST Multipart发送图像(HTTPRequest)
但是我必须先对图像做些什么?我必须将其转换为二进制文件吗?这是来自标题的标题数据(使用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)
有什么建议吗?
答
您可以使用File.ReadAllBytes函数将文件读入一个byte []。从那里你可以使用StreamWriter将字节输出到你的响应中。没有需要转换。
答
理想情况下,您希望将Content-Transfering-Encoding设置为base64。然后你只需将File.ReadAllBytes文件放入一个字节数组中,然后使用Convert.ToBase64String方法将其转换为base64。
您可以在维基百科的文章约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-02-20 23:33:38