3

我正在使用以下代码从 HttPostedFileBase 对象中获取字节数组

byte[] mobileAppByteArray = default(byte[]);
using (MemoryStream ms = new MemoryStream())
{
  httpPostedFileObject.InputStream.CopyTo(ms);
  mobileAppByteArray = ms.GetBuffer();
}

httpPostedFileObject 的原始大小是 3191KB,但是经过上述转换并保存到磁盘后,文件大小是 4096KB

我知道默认缓冲区大小为CopyTo4096,但即使我将缓冲区大小更改为 1024,结果也是一样的:文件大小为 4096KB。

如何更改我的代码以使我的文件在保存到磁盘后保持为 3191KB?

4

1 回答 1

5

这是因为GetBuffer将返回整个底层缓冲区,而不仅仅是其中已填充输入流中的字节的部分。尝试改用该ToArray方法:

mobileAppByteArray = ms.ToArray();
于 2013-06-18T21:14:24.750 回答