【问题标题】:convert byte[] to string when upload a file in asp.net在 asp.net 中上传文件时将字节 [] 转换为字符串
【发布时间】:2014-09-26 13:58:27
【问题描述】:

我已经通过 asp.net 上传了一个文件(图像)。 这是我的代码:

string imgpathpic =Convert .ToString (Session["imgpathpic"]);
long  sizepic =Convert .ToInt64 (Session["sizepic"]);
string extpic = Convert.ToString(Session["extpic"]);
byte[] inputpic = new byte[sizepic - 1];
inputpic = FileUpload2.FileBytes;
for (int loop1 = 0; loop1 < sizepic; loop1++)
{
    displayStringPic = displayStringPic + inputpic[loop1].ToString();
}

我将 byte[] 转换为字符串,但是在displayStringPic = displayStringPic + inputpic[loop1].ToString(); 行之后我收到了这个异常:

Index was outside the bounds of the array.

【问题讨论】:

    标签: asp.net upload


    【解决方案1】:

    当您访问循环体中的 inputpic 元素时,循环条件将位于 inputpiclength

    for (int loop1 = 0; loop1 < inputpic.Length; loop1++)
    {
        displayStringPic = displayStringPic + inputpic[loop1].ToString();
    }
    

    当存在大量字符串连接时,您应该使用字符串生成器而不是字符串以获得最佳解决方案,请参阅How to: Concatenate Multiple Strings (C# Programming Guide)

    StringBuilder sb = new StringBuilder();
    foreach(byte b in inputpic)
    {
        sb.Append(b.ToString());
    }
    string displayStringPic = sb.ToString();
    

    你最好使用System.Text.Encoding将字节数组转换为字符串

    var str = System.Text.Encoding.UTF8.GetString(result);
    

    注意除了将字节数组转换为字符串外,您还可以将图像故事化为图像或二进制格式。

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 2016-02-07
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多