我正在使用以下代码从HttPostedFileBase对象中获取字节数组:
byte[] mobileAppByteArray = default(byte[]);
using (MemoryStream ms = new MemoryStream())
{
httpPostedFileObject.InputStream.CopyTo(ms);
mobileAppByteArray = ms.GetBuffer();
}
httpPostedFileObject的原始大小是3191KB,但在进行上述转换并保存到磁盘后,文件大小为4096KB。
我知道CopyTo的默认缓冲区大小是4096,但即使我将缓冲区大小更改为1024,结果仍然相同:文件大小为4096KB。
我该如何更改代码以便在保存到磁盘后文件仍保持为3191KB?
CopyTo
只会复制数组中使用过的部分,而Length
属性则会告诉你数组中有多少部分被使用了,但在这两种情况下,你可能需要改变如何使用内存流。如果你想要获取一个仅表示缓冲区已使用部分的数组,那么ToArray
就是它。 - p.s.w.g