无法将 HttpPostedFileBase 对象转换为字节数组
Can not convert HttpPostedFileBase object into byte array
我正在尝试创建一种方法,我可以在其中传递图像文件并检索该图像文件的字节,以便稍后我可以将字节存储在数据库中。这是我的方法代码。
private byte[] GetImageBytes(HttpPostedFileBase ProfilePhoto)
{
if (ProfilePhoto != null)
{
using (MemoryStream ms = new MemoryStream())
{
ProfilePhoto.InputStream.CopyTo(ms);
byte[] array = ms.GetBuffer();
return array;
}
}
else
{
return null;
}
}
问题是我得到了一个字节数组array[0],所以没有任何东西被转换成字节。在调试模式下,我可以看到 ProfilePhoto 不为 null 并且它有 Length 属性 等...我尝试了另一种方法,将方法中的代码替换为以下代码:
byte[] image = new byte[ProfilePhoto.ContentLength];
ProfilePhoto.InputStream
.Read(image, 0, Convert.ToInt32(ProfilePhoto.ContentLength));
return image;
但还是没有成功。它 returns 一个数组 0x0000... 这是默认值。
知道如何解决这个问题吗?可能很简单,但我不知道如何在 MVC 中上传文件
。我试图找到其他方法来做到这一点,但 none 有效。
您需要先定位到流的开头,然后再复制它:
ProfilePhoto.InputStream.Seek(0, SeekOrigin.Begin);
ProfilePhoto.InputStream.CopyTo(ms);
我正在尝试创建一种方法,我可以在其中传递图像文件并检索该图像文件的字节,以便稍后我可以将字节存储在数据库中。这是我的方法代码。
private byte[] GetImageBytes(HttpPostedFileBase ProfilePhoto)
{
if (ProfilePhoto != null)
{
using (MemoryStream ms = new MemoryStream())
{
ProfilePhoto.InputStream.CopyTo(ms);
byte[] array = ms.GetBuffer();
return array;
}
}
else
{
return null;
}
}
问题是我得到了一个字节数组array[0],所以没有任何东西被转换成字节。在调试模式下,我可以看到 ProfilePhoto 不为 null 并且它有 Length 属性 等...我尝试了另一种方法,将方法中的代码替换为以下代码:
byte[] image = new byte[ProfilePhoto.ContentLength];
ProfilePhoto.InputStream
.Read(image, 0, Convert.ToInt32(ProfilePhoto.ContentLength));
return image;
但还是没有成功。它 returns 一个数组 0x0000... 这是默认值。 知道如何解决这个问题吗?可能很简单,但我不知道如何在 MVC 中上传文件
。我试图找到其他方法来做到这一点,但 none 有效。
您需要先定位到流的开头,然后再复制它:
ProfilePhoto.InputStream.Seek(0, SeekOrigin.Begin);
ProfilePhoto.InputStream.CopyTo(ms);