我已经通过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.
循环条件将是对length
的inputpic
,你正在访问inputpic的元素在循环体
for (int loop1 = 0; loop1 < inputpic.Length; loop1++)
{
displayStringPic = displayStringPic + inputpic[loop1].ToString();
}
当存在很多字符串连接时,应使用字符串生成器而不是字符串以获得最佳解决方案,请参阅如何:连接多个字符串(C#编程指南)
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);
注意除了将字节数组转换为字符串外,您还可以将图像作为Image或二进制格式进行故事处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句