Byte [] Array to String

时间:2010-02-21 00:04:09

标签: c#

我想将一个Byte []数组输出到一个字符串,以便我可以沿HTTPRequest发送它。可以吗?服务器是否会从中获取数据并创建文件?或者是否需要进行一些特殊编码?

该文件是图像。目前我有:

Byte[] fBuff = File.ReadAllBytes("C:/pic.jpeg");

我需要拿fBuff中的内容并输出它以发送请求。

5 个答案:

答案 0 :(得分:7)

使用Convert.ToBase64String方法

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上传文件的原因?