我想将一个Byte []数组输出到一个字符串,以便我可以沿HTTPRequest发送它。可以吗?服务器是否会从中获取数据并创建文件?或者是否需要进行一些特殊编码?
该文件是图像。目前我有:
Byte[] fBuff = File.ReadAllBytes("C:/pic.jpeg");
我需要拿fBuff中的内容并输出它以发送请求。
答案 0 :(得分:7)
Byte[] fBuff = File.ReadAllBytes("C:/pic.jpeg");
String base64 = Convert.ToBase64String(fBuff);
这样字符串就像posible一样紧凑,并且是将字节写入字符串并返回字节的“标准”方式。
要转换回字节,请使用Convert.FromBase64String:
String base64 = ""; // get the string
Byte[] fBuff = Convert.FromBase64String(base64);
答案 1 :(得分:0)
您可以创建一个String,其中每个字节都是String的一个字符。如果你在接收器上执行相同的相反过程,你将不会有任何问题(我已经做了类似的事情,但在Java中)。
答案 2 :(得分:0)
Convert.ToBase64String看起来是将字节存储在可传输数组中的最佳选择,您应该查看这些函数。
答案 3 :(得分:0)
如果您只是发送文件,则可以使用UploadFile
类的WebClient
方法:
using (WebClient client = new WebClient) {
client.UploadFile("http://site.com/ThePage.aspx", @"C:\pic.jpeg");
}
这会将文件作为常规文件上传发布,就像从带有文件输入的网页一样。在接收服务器上,该文件来自Request.Files
集合。
答案 4 :(得分:0)
没有使用WebClient上传文件的原因?